python元類
python裝飾器:python真正入門的鑑定標準
例項:
結果:class person():
def __init__(self,name):
self.name=name
#定義乙個物件
mark=person("mark")#終於修煉**了,好開森
print("報出我的大名",mark.name)
#直接新定義屬性:age
mark.age=18
print("我的實際年齡:",mark.age)#哎?,寫大了,我還是個寶寶?
#動態刪除屬性:
del mark.age
#這種方法刪除也可以
#delattr(person,"age")
#下面一句會報錯
#print("我的實際年齡:",mark.age)#哎?,寫大了,我還是個寶寶?
報出我的大名 mark
我的實際年齡: 18
執行結果:import types
class person():
def __init__(self,name):
self.name=name
def study(self):
print("學習使我快樂")
#定義乙個方法
def run(self,speed):
print("我竟然會跑?,速度:",speed)
#定義乙個類方法
@classmethod
def classmethod_fun(cls):
print("我是類方法")
#定義乙個靜態方法
@staticmethod
def static_fun():
print("我是靜態方法")
#定義乙個物件
mark=person("mark")
mark.study()
#動態生命函式
mark.run=types.methodtype(run,mark)
#跑起來?
mark.run(100)
#繫結類方法
person.classmethod_fun=classmethod_fun
#呼叫類方法
person.classmethod_fun()
mark.classmethod_fun()
#繫結靜態方法
person.static_fun=static_fun
#呼叫靜態放
person.static_fun()
#刪除方法
del person.classmethod_fun
#下面一句會異常
#mark.classmethod_fun()
#這種方法刪除也可以
delattr(person,"static_fun")
#下面一句會異常
#person.static_fun()
學習使我快樂
我竟然會跑?,速度: 100
我是類方法
我是類方法
我是靜態方法
僅僅對當前類有效,對繼承類無效例項:
結果:class person():
__slots__ = ("name","age")
mark=person()
mark.name="mark"
mark.age=18
#下面一句會報錯
mark.object="在哪"
traceback (most recent call last):
file "/users/zhaolixiang/desktop/python/test1/python是動態語言/3、slots.py", line 8, in mark.object="在哪"
attributeerror: 'person' object has no attribute 'object'
Python動態新增屬性
class student object classmethod修飾的屬性可以通過類變數和類例項變數直接呼叫 因為在這兩種情況下都可以將類變數繫結到 classmethod修飾的方法的第乙個引數上 classmethod def eat cls print eating.當類的例項動態新增屬性時 c...
什麼是「動態語言「
經過反覆的查詢,終於找到了幾個解釋,我現在把這些解釋歸納出來。所謂 動態語言 也叫指令碼語言,就是說一種在執行期間才去發現資料型別的程式語言,主要建立一些需要經常更新的動態系統。這就是動態語言的定義,聽起來還是夠明確吧。以往,我們所使用的語言,比如c,c 等等,都稱為靜態語言。什麼是靜態語言呢?就是...
python是高階動態程式語言 Python語言
python是一門跨平台 開源 免費的解釋型高階動態程式語言。python支援命令式程式設計 how to do 函式式程式設計 what to do 完全支援物件導向程式設計,擁有大量擴充套件庫。膠水語言 可以把多種不同語言編寫的程式融合到一起實現無縫拼接,更好地發揮不同語言和工具的優勢,滿足不同...