我該如何定義一個類的屬性?在Python中定義一個類的屬性
class Example:
def __init__(self,n,m):
self.n=n
self.m=m
或者這樣:
class Example:
m=0
n=0
def __init__(self,n,m):
self.n=n
self.m=m
如果我定義構造之外的屬性,它是一個靜態變量?
我該如何定義一個類的屬性?在Python中定義一個類的屬性
class Example:
def __init__(self,n,m):
self.n=n
self.m=m
或者這樣:
class Example:
m=0
n=0
def __init__(self,n,m):
self.n=n
self.m=m
如果我定義構造之外的屬性,它是一個靜態變量?
我認爲你是混淆實例變量和類本身的變量(你可以稱它們是靜態的,如果你來自java)。看看這個演示(注意,__init__
需要兩個下劃線)。
class Example:
m=0
n=0
def __init__(self,n,m):
self.n=n
self.m=m
e = Example(1,2)
print(e.m) # 2
print(e.n) # 1
print(Example.m) # 0
print(Example.n) # 0
在你的第二個代碼,Example
具有類變量m
和n
和Example
對象的每個實例都將有實例成員self.m
和self.n
。
這樣:
class Example:
def __init__(self,n,m):
self.n=n
self.m=m
雙得分init
,像這樣:__init__
,不喜歡這個_init_
!
m=0
和n=0
是類屬性,並且與self.n
和self.m
(它們是實例變量)沒有任何關係。
它取決於 - 你想讓它們成爲*類屬性*(由所有實例共享)還是*實例屬性*(每個實例都是單獨的)? – jonrsharpe