我有一个具有两个实例属性的类。例如:
class Test():
def __init__(self, parameter):
self.one = self.somefunction(parameter)
self.two = 'somestring'
在同一个类中,我定义了一个函数somefunction,根据上面的编码,它将在对象创建时被调用。当我尝试这个的时候,我可以自我。一当我在somefunction(参数)中返回一些值时,例如:
^{pr2}$
不过,这感觉不太好练习。什么的是动态设置实例初始值的最佳方法吗?在
Tags:
你所做的一切没有错,除非
somefunction
需要很长时间才能回来。通常,您不希望对象创建/实例化花费很长时间。如果计算该属性需要很长时间,则应在第一次访问该属性时进行计算。而这可以通过财产获取者来实现。在当您调用
foo.one
时,Python将检查“protected”属性是否仍然是None
。如果是,那么它将执行昂贵的函数调用。下次尝试访问它时,它将使用保存的值。在相关问题 更多 >
编程相关推荐