Python基础教程:type()函数-动态创建类
生活随笔
收集整理的這篇文章主要介紹了
Python基础教程:type()函数-动态创建类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
type() 函數的語法格式有 2 種,分別如下:
- type(obj)
- type(name, bases, dict)
以上這 2 種語法格式,各參數的含義及功能分別是:
- 第一種語法格式用來查看某個變量(類對象)的具體類型,obj 表示某個變量或者類對象。
- 第二種語法格式用來創建類,其中 name 表示類的名稱;bases 表示一個元組,其中存儲的是該類的父類;dict 表示一個字典,用于表示類內定義的屬性或者方法。
對于使用 type() 函數查看某個變量或類對象的類型,由于很簡單,這里不再做過多解釋,直接給出一個樣例:
#查看 3.4 的類型 print(type(3.4)) #查看類對象的類型 class CLanguage:pass clangs = CLanguage() print(type(clangs))輸出結果為:
<class 'float'> <class '__main__.CLanguage'>這里重點介紹 type() 函數的另一種用法,即創建一個新類,先來分析一個樣例:
''' 學習中遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' #定義一個實例方法 def say(self):print("我要學 Python!") #使用 type() 函數創建類 CLanguage = type("CLanguage",(object,),dict(say = say, name = "Python學習")) #創建一個 CLanguage 實例對象 clangs = CLanguage() #調用 say() 方法和 name 屬性 clangs.say() print(clangs.name)注意,Python 元組語法規定,當 (object,) 元組中只有一個元素時,最后的逗號(,)不能省略。
可以看到,此程序中通過 type() 創建了類,其類名為 CLanguage,繼承自 objects 類,且該類中還包含一個 say() 方法和一個 name 屬性。
有讀者可能會問,如何判斷 dict 字典中添加的是方法還是屬性?很簡單,如果該鍵值對中,值為普通變量(如 “C語言中文網”),則表示為類添加了一個類屬性;反之,如果值為外部定義的函數(如 say() ),則表示為類添加了一個實例方法。
運行上面的程序,其輸出結果為:
我要學 Python! Python學習可以看到,使用 type() 函數創建的類,和直接使用 class 定義的類并無差別。事實上,我們在使用 class 定義類時,Python 解釋器底層依然是用 type() 來創建這個類。
總結
以上是生活随笔為你收集整理的Python基础教程:type()函数-动态创建类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 6道简单的python练习题,来看看你p
- 下一篇: 对python中浅拷贝和深拷贝分析详细介