class Organism(object): def reproduce(self): #use self here to customize the new organism ... return Organism()
另一个选项-如果
self方法中未使用实例():
class Organism(object): @classmethod def reproduce(cls): return cls()
这样可以确保生物产生更多的生物,以及(源自生物的假想的博格产生更多的博格)。
无需使用的另一个好处
self是,除了可以从实例调用之外,现在还可以直接从类中调用它:
new_organism0 = Organism.reproduce() # Creates a new organismnew_organism1 = new_organism0.reproduce() # Also creates a new organism
最后,如果在方法中同时使用了实例(
self)和类(
Organism或从子类调用的子类):
class Organism(object): def reproduce(self): #use self here to customize the new organism ... return self.__class__() # same as cls = type(self); return cls()
在每种情况下,您都可以将其用作:
organism = Organism()new_organism = organism.reproduce()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)