当我在 python 中编写类时,大多数时候,我急于将我使用的变量设置为对象的属性。关于哪些变量应该用作类/实例属性,哪些不应该使用,是否有任何规则或一般准则?
例如:
class simple(object):
def __init(self):
a=2
b=3
return a*b
class simple(object):
def __init(self):
self.a=2
self.b=3
return a*b
虽然我完全理解属性应该是对象的属性。当类声明很简单时,这很容易理解,但是随着程序越来越长,并且有很多地方应该在各个模块之间进行数据交换,我对在哪里应该使用 a/b 或 self.a 感到困惑/self.b.有这方面的指导方针吗?
请您参考如下方法:
在使用 self.a 的地方,您正在创建一个属性,因此可以从类外部访问它并在该函数之外持续存在。这些应该用于存储有关对象的数据。
在你使用 a 的地方它是一个局部变量,并且只在该函数的范围内持续存在,所以应该在你只在函数内使用它的地方使用它(如本例) .
请注意 __init 具有误导性,因为它看起来像 __init__ - 但不是构造函数。如果您希望它们成为构造函数,那么返回一个值就没有意义(因为返回的是新对象)。
