在定義類(class)的時候發現屬性這個地方有很多坑,類屬性、實例屬性、局部變量傻傻分不清。
在在本文中介紹以下內容(全部跟定義類有關)
- 類屬性
- 實例屬性
一. 類屬性:定義類的模塊添加的屬性
1. 調用:
在內部用類名.類屬性名調用,
外部既可以用類名.類屬性名又可以用實例化對象.類屬性名來調用
demo1
class
Car
(
)
:
type
=
"new"
my_car
=
Car
(
)
print
(
my_car
.
type
)
### 實例對象.類屬性名調用
print
(
Car
.
type
)
### 類名.類屬性名調用
輸出結果:
new
new
2. 修改:通過類名.類屬性修改,在全局任何地方都可以修改
demo2
class
Car
(
)
:
type
=
"new"
Car
.
type
=
"newnew"
my_car
=
Car
(
)
print
(
Car
.
type
)
print
(
my_car
.
type
)
輸出結果:
newnew
newnew
###通過輸出結果可以看出修改成功了
二、實例屬性:類內所有方法可調用(標志:self.屬性名)
- 在__init__(self,…)中初始化的屬性,self.屬性名
-
在類中的其他方法中定義的self.屬性名
因為__init__函數比較特殊,所以單拿出來講,關于__init__方法:
這兩種情況會在demo中一一舉例
要點:以self為前綴的變量都可以供類中的所有方法使用
外部調用時用實例對象.屬性名
demo
class
Car
(
)
:
type
=
"new"
###類屬性
def
__init__
(
self
,
make
,
year
)
:
self
.
make
=
make
self
.
year
=
year
### make,year在實例化對象的時候必須傳入相應參數 必需實例屬性
self
.
length
=
2000
### 由于__init__方法定義的時候沒有wo,所以在實例化對象的時候無需傳入 非必需屬性
def
get_name
(
self
)
:
long_name
=
self
.
year
+
' '
+
self
.
make
+
" "
print
(
long_name
,
self
.
length
)
my_car
=
Car
(
'aodi'
,
'2010'
)
my_car
.
get_name
(
)
輸出結果:
2010
aodi
2000
從上面的注釋中可以看出有兩種實例屬性,一種是必需實例屬性(如demo中的make,year,它們是在__init__方法中定義的時候定義的,在實例化對象的時候必須傳入),一些是非必需實例屬性如(length,當然后面的方法也可以調用它,但在實例化對象的時候無需傳入)。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
