假设有几个出版社,每个出版社出版很多书,我要处理很多记录,比如‘出版社名,书名’。
我想用一个唯一的名字(字符串)创建类'Press‘,但只有不同的字符串才能产生类'Press’的不同实例。
所以,我需要一个像'factory‘这样的类来工作,当一个记录包含一个新的press时创建一个新的实例,但如果已经存在同名的实例,它也可以作为单例工作。
发布于 2020-09-20 21:45:03
您可以使用唯一名称作为键,使用Press objects作为值来创建字典。这不需要是一个全球字典。您可以将其封装在某个类中,如下所示:
class Press:
def __init__(self, name):
self.name = name
self.books = []
class PressManager:
presses = {}
@classmethod
def get_press(cls, name):
if name not in cls.presses:
cls.presses[name] = Press(name)
return cls.presses[name]
example_press = PressManager.get_press("Test")
我将get_press()
实现为一个类方法,因为我认为这就是您所想的。
https://stackoverflow.com/questions/63977109
复制相似问题