我得到了一个类的以下结构。
class Company(object):
Companycount = 0
_registry = {}
def __init__(self, name):
Company.Companycount +=1
self._registry[Company.Companycount] = [self]
self.name = name
k = Company("a firm")
b = Company("another firm")
每当我需要这些对象时,我都可以使用
来访问它们Company._registry
它给出了所有实例的字典。
我的对象是否需要合理的名称,因为公司的名称是类属性,我可以迭代Company._registry
?
从数据库加载数据时,实例的名称(此处为k
和b
)是多少?或者我可以只使用任意字符串?
答案 0 :(得分:0)
您的Company._registry
和名称k
以及b
都只是引用到您的实际实例。在您存储在数据库中的内容中都不起任何作用。
Python的对象模型将所有对象都放在一个大堆上,并且您的代码通过这些引用与对象进行交互。您可以根据需要创建任意数量的引用,并在没有引用时自动删除对象。参见Ned Batchelder的优秀Facts and myths about Python names and values article。
您需要自己决定Company._registry
结构是否需要名称。如果您已经拥有要访问的公司的名称,则对列表的迭代很慢,但字典可让您立即访问。
如果您打算使用ORM,那么您实际上并不需要结构。将它留给ORM来帮助你找到你的对象,或者给你一系列迭代的所有对象。我建议使用SQLAlchemy。
答案 1 :(得分:-1)
这个名字并不重要,但如果你要初始化很多物品,你仍然会以某种方式使它合理