国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - python中類和實例如何綁定屬性與方法示例詳解

python中類和實例如何綁定屬性與方法示例詳解

2020-12-03 00:11Seirios Python

最近在學(xué)習(xí)python,純粹是自己的興趣愛好,然而并沒有系統(tǒng)地看python編程書籍,覺得上面描述過于繁瑣,在網(wǎng)站找了一些學(xué)習(xí)的網(wǎng)站,下面這篇文章主要給大家介紹了關(guān)于python中類和實例時如何綁定屬性與方法的相關(guān)資料,需要的

前言

python實例的方法的調(diào)用中覺得云里霧里,思考之后將自己的想法記錄下,一來加深自己理解,鞏固自己記憶,而來幫助一些想要學(xué)習(xí)python的朋友理解這門抽象的語言,由于Python是動態(tài)語言,類以及根據(jù)類創(chuàng)建的實例可以任意綁定屬性以及方法,下面分別介紹。

1.類綁定屬性

類綁定屬性可以直接在class中定義屬性,這種屬性是類屬。

?
1
2
class Student(object):
 name = 'Student'

這個屬性雖然歸類所有,但類的所有實例都可以訪問到。

?
1
2
3
4
5
6
7
class Student(object):
 name = 'Student'
s = Student() # 創(chuàng)建實例s
print(s.name) # 打印name屬性,因為實例并沒有name屬性,所以會繼續(xù)查找class的name屬性
print(Student.name) # 打印類的name屬性
Student
Student

此時如果修改s.name的值,會有如下結(jié)果:

?
1
2
3
4
5
s.name = 'xiaoming' # 給實例綁定name屬性
print(s.name) # 由于實例屬性優(yōu)先級比類屬性高,因此,它會屏蔽掉類的name屬性
print(Student.name) # 但是類屬性并未消失,用Student.name仍然可以訪問
xiaoming
Student

接下來刪除s.name屬性:

?
1
2
3
del s.name # 如果刪除實例的name屬性
print(s.name) # 再次調(diào)用s.name,由于實例的name屬性沒有找到,類的name屬性就顯示出來了
Student

由此可見相同名稱的實例屬性將覆蓋類屬性,刪除實例屬性后,實例將向上訪問到類屬性。

2.實例綁定屬性

實例綁定屬性的方法有兩種,一是通過類的self變量,二是直接給實例賦值。

?
1
2
3
4
5
class Student(object):
 def __init__(self, name):
  self.name = name
s = Student('Bob')#方法一 通過類的self變量綁定屬性
s.score = 90#方法二 直接賦值

3.類綁定方法

類綁定方法分兩種,第一種形如類綁定屬性,例程如下:

?
1
2
3
4
5
6
7
8
9
10
11
Class Student(object):
 pass
a=Student()#創(chuàng)建實例
 
def set_score(self,score):
 self.score=score
 
Student.set_score=set_score#類綁定方法
a.set_score(99)#調(diào)用方法
a.score
99#輸出

第二種是使用MethodType給類綁定方法:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
Class Student(object):
 pass
a=Student()#創(chuàng)建實例
 
def set_score(self,score):
 self.score=score
 
from types import MethodType
Student.set_score = MethodType(set_score, Student)
 
a.set_score(99)#調(diào)用方法
a.score
99#輸出

這種方法有一個需要注意的地方,如果繼續(xù)創(chuàng)建一個實例b:

?
1
2
3
4
5
b=Student()
b.set_score(60)
b.score
a.score
60

會發(fā)現(xiàn)a的屬性score值也變成60。這里個人的理解是這里的score并不是同上一種方法一樣直接綁定在類,而是類似于像列表一樣的共享引用的關(guān)系,

即實例a和b都引用這個score作為自己的屬性,而當(dāng)其被修改時,所有引用它的實例的對應(yīng)屬性都將一同發(fā)生變化。

4.實例綁定方法

第一種通過給類綁定方法,可以使實例調(diào)用,如上所示。

第二種是使用MethodType給單個實例綁定方法。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
Class Student(object):
 pass
a=Student()#創(chuàng)建實例
 
def set_score(self,score):
 self.score=score
 
from types import MethodType
a.set_score = MethodType(set_score, a)
 
a.set_score(99)#調(diào)用方法
a.score
99#輸出

注意這種方式只對實例a起作用,如果需要類Studnet的所有實例均可調(diào)用,那么直接給類Student綁定方法即可。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對服務(wù)器之家的支持。

原文鏈接:http://www.cnblogs.com/seirios1993/p/6624157.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 国产精品美乳一区二区免费 | 欧美一级二级三级视频 | 亚洲免费观看视频 | 日韩在线观看中文字幕 | 亚洲欧美激情视频 | 亚洲男人的天堂视频 | 一级电影毛片 | 亚洲三级黄色 | 欧美日韩国产成人 | 亚洲国产日韩欧美在线 | 欧美国产日韩精品 | 精品一二三区 | 最好看的2019年中文在线观看 | 久草视频在线播放 | 日韩精品视频在线观看免费 | 成人在线观看免费 | 免费的黄色网 | 国产精品一区三区 | 黄网视频 | 免费观看aaa | 黄色三级网站 | 中文字幕视频三区 | 午夜网址 | av基地网 | 午夜精品福利在线观看 | 成人在线小视频 | 黄色小视频在线免费观看 | 四虎av成人 | 成人性大片免费观看网站 | 久久久久9999国产精品 | av网站免费观看 | 97精品国产 | 毛片免费播放 | 91精品观看 | 亚洲一区二区在线视频 | 在线视频一区二区三区 | 日韩中文字幕在线播放 | 国产一级一级国产 | 亚洲国产精品一区二区www | 成人免费毛片嘿嘿连载视频 | 久久久久久一区二区三区 |