當我們創建物件時,記憶體被分配給資料成員,值被存盤在其中,例如在下面的代碼中,只有在物件emp被創建后,記憶體被分配給a。我們不能在不分配記憶體的情況下訪問a。
class Employee。
def __init__(self,first):
self.a=first
emp=Employee('John') #如果我們洗掉這個陳述句,我們會得到一個訪問'a'的錯誤。
print(emp.a)
但是在類變數的情況下,如下面的例子所示;
class Emp:
pi = 3.14 Emp.
def __init__(self,first)。
self.a=first
print(Emp.pi)
我們可以訪問變數pi而不用分配記憶體。為什么呢
uj5u.com熱心網友回復:
類屬性pi是在創建類的時候創建的,而不是在創建類的實體時創建的。
uj5u.com熱心網友回復:
這就是實體屬性與類屬性的概念,這不僅僅是在Python中。
- 類屬性,從名字本身來看,是類層次上的屬性,不需要活動的實體就可以訪問。它不與類的任何實體相聯系,因此即使沒有活動物件,你也可以訪問它。
- 另一方面,實體屬性是針對每個實體的。
這一點在類和實體變數中得到了很好的記錄:
一般來說,實體變數是指每個實體所特有的資料,而類變數是指類的所有實體所共享的屬性和方法:class Dog:
kind = 'canine' # class variable shared by all instances.
def __init__(self, name):
self.name = name # 實體變數對每個實體是唯一的。
d = Dog('Fido'/span>)
e = Dog('Buddy')
d.kind # shared by all dogs。
'canine'。
e.kind # shared by all dogs
'canine'。
d.name # only to d
'Fido'。
e.name # only to e
'Buddy'。
一些其他的參考資料
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/307316.html
標籤:
