python 3中的实例和成员变量之间的区别是什么?如何创建它们? 我们只是学习如何在python 3中创建类,我不理解这些变量类型。
我可以在“__ init __”方法之前设置它们吗?
我正在编写一个代码,其中ID需要是一个实例变量,而balance和annualInterestRate需要是成员变量。这就是我的意思:
def __init__(self, ID=0, initialbalance=100.0, annualInterestRate=0.0):
self.__ID = int(ID)
self.__balance = float(initialbalance)
self.__annualInterestRate = float(annualInterestRate)
要使Id成为类变量,我应该将其设置为“__ init __”之前的数量吗?我确实需要能够在程序中稍后更改该值。
答案 0 :(得分:0)
类属性是类本身拥有的属性。它们将由该类的所有实例共享。因此,它们对每个实例都具有相同的值。成员变量仅特定于类的成员,并且可以为类的每个实例具有不同的值。
这显示了一个class属性。请注意,a
在所有实例中都是相同的。
>>> class A:
... a = "I am a class attribute!"
...
>>> x = A()
>>> y = A()
>>> x.a
'I am a class attribute!'
>>> y.a
'I am a class attribute!'
>>> A.a
'I am a class attribute!'
现在,如果我们尝试将其改为一个,它将会改变。
>>> A.a = "I am changed now"
>>> A.a
'I am changed now'
>>> x.a
'I am changed now'
>>> y.a
'I am changed now'
这显示了成员变量以及它们如何特定于每个实例。请注意,这次a
函数中定义了__init__
,使其成为成员变量,而不是类变量。
>>> class B:
... def __init__(self):
... self.a = 10
>>> x = B()
>>> y = B()
>>> x.a
10
>>> y.a
10
>>> y.a = 12
>>> x.a
10
>>> y.a
12
在此类中,self.a
的默认值为10.在类的y
实例中,它更改为12(y.a = 12
)。类的x
实例仍然是默认值10。
本答案的开头部分取自Python课程的Class and Instance Attributes页面