帶你走進 @ 機器人時代 Discover 點擊上面藍色文字,關注我們 ![]()
通常情況下,我們希望用類對象來調(diào)用實例方法,但是要注意的是,通過類名直接調(diào)用實例方法時,Python 并不會自動給 self 參數(shù)傳值。 如果想通過類名直接調(diào)用實例方法,就必須手動為 self 參數(shù)傳值。我們來看看下面的代碼: #定義一個類class CL: def info(self): print('這是一個類方法')#通過類名直接調(diào)用實例方法d=CL()CL.info(d)運行結(jié)果:這是一個類方法 我們也可以修改代碼,直接傳遞任意的參數(shù):
我們在學習類編程的時候,不止一次提到過命名空間。實際上,在所有的class關鍵字修飾的代碼塊中,都可以看成獨立的空間。 在這個獨立的空間里面,所有的屬性和方法都是獨立的。所有的屬性都是在這個空間里面的變量,所有的方法都是這個空間的函數(shù)。 不過,在程序中我們應該如何調(diào)用它們呢?我們來看看一個實例: a='這是一個全局變量'def say(): print('這是一個全局函數(shù)的方法')class st: def say1(): print('這是一個類空間里面的函數(shù)方法') b='這是一個類空間的變量'print(a)say()print(st.b)st.say1()運行結(jié)果:這是一個全局變量這是一個全局函數(shù)的方法這是一個類空間的變量這是一個類空間里面的函數(shù)方法
如果一個類的某個屬性有數(shù)據(jù)描述符,那么每次查找這個屬性時,都會調(diào)用描述符的 __get__() 方法,并返回它的值;同樣,每次在對該屬性賦值時,也會調(diào)用 __set__() 方法。我們可以看看下面的例子: class Ace: def __init__(self, i = None, name = '描述符的數(shù)據(jù)'): self.v = i self.name = name def __get__(self, a, c): print('這是get查找的',self.name) return self.v def __set__(self, s, b): print('他是',self.name) self.v = bm = Ace(5,'輸入新的變量')print(m.name)class myClass: x = Ace(10,'調(diào)用類輸入的變量')n=myClass()print(n.x)輸出結(jié)果:輸入新的變量這是get查找的 調(diào)用類輸入的變量10
繼續(xù)堅持學習,每天都能進步一點?。?! 往期回顧:
本文引用和摘錄相關內(nèi)容,請聯(lián)系侵刪。 - END - 最后,文章有幫助到你的話【點贊在看】 |
|
來自: 網(wǎng)摘文苑 > 《面向?qū)ο蟆?/a>