尽管可以在 Python 中动态创建类和类的命名实例,但这样做通常是不受欢迎的。将此类事物的集合存储在某种容器(例如列表或字典)中被认为更“Pythonic”和优雅,然后在必要时通过索引或键访问它们。这可能适用于您的问题:
class Element(object):
def __init__(self, name, a=None, b=None, c=None):
self.name, self.a, self.b, self.c = name, a, b, c
def __str__(self):
classname = self.__class__.__name__
return('{classname}('
'name={self.name}, b={self.a}, '
'c={self.b}, d={self.c})'.format(classname=classname,
self=self))
board = {} # empty dictionary
for row in 'ABCDEFGHI':
for col in 'ABCDEFGHI':
name = row+col
board[name] = Element(name) # assign a named Element instance
# sample usage
board['AB'].a = 42
print board['AB'] # Element(name=AB, a=42, b=None, c=None)
board['GD'].c = 'something'
print board['GD'] # Element(name=GD, a=None, b=None, c=something)
注意:我真的不知道如何调用Element
类的大多数属性,所以我只是在上面使用a
,b
和c
来进行说明。