从Python中的文件创建类实例

2024-10-02 00:40:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从一个对象文件创建类实例:

MyCube,2,3,4
FancyCube,5,3,3
AngryCube,5,5,5

其中第一列是实例的名称。在

^{pr2}$

我已经对此进行了一段时间的黑客攻击,以上是我能找到的最接近的实现,但我得到了这个错误:

File "classtest.py", line 21, in filetest
    vars()[name] = cube(X, Y, Z)
TypeError: 'str' object is not callable

有什么想法吗? 谢谢


Tags: 对象实例inpy名称错误linevars
1条回答
网友
1楼 · 发布于 2024-10-02 00:40:39

正如评论中所建议的,修改vars()可能不是最好的方法。我建议创建一个字典,并使用立方体的名称作为键。此外,您可以直接使用^{} module

import csv

class Cube(object):
    def __init__(self, X, Y, Z):
        self.X = X
        self.Y = Y
        self.Z = Z

def filetest():
    filename = 'CubeDB.txt'
    cubes = {}
    with open(filename, 'r') as csvfile:
        for row in csv.reader(csvfile):
            cubes[row[0]] = Cube(*row[1:])
    return cubes

cubes = filetest()
print cubes['MyCube'].X

相关问题 更多 >

    热门问题