例如,我得到了一个类的以下结构
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
它给出了所有实例的字典
既然公司的名称是class属性,而且我可以在Company._registry
上迭代,那么我的对象需要合理的名称吗
从数据库加载数据时,实例的名称(这里是k
和b
)是否重要?或者我可以使用任意字符串吗
你的
Company._registry
和名字k
和b
只是对你的实际实例的引用。也不在数据库中存储的内容中扮演任何角色Python的对象模型将所有对象放在一个大堆上,您的代码通过这样的引用与对象交互。您可以创建任意多的引用,当没有引用时,对象将自动删除。请看奈德·巴奇尔德的优秀作品Facts and myths about Python names and values article
您需要自己决定
Company._registry
结构是否需要有名称。如果您已经有了想要访问的公司的名称,那么对列表的迭代是很慢的,但是字典可以让您即时访问如果您要使用ORM,那么实际上并不需要这种结构。让ORM来帮助您查找对象,或者给您一个所有对象的序列来迭代。我建议对此使用SQLAlchemy
名字并不重要,但是如果你要初始化很多对象,你还是会让它变得合理
相关问题 更多 >
编程相关推荐