国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

Python使用type動態(tài)創(chuàng)建類操作示例

瀏覽:2日期:2022-08-05 08:23:09

本文實例講述了Python使用type動態(tài)創(chuàng)建類操作。分享給大家供大家參考,具體如下:

使用type動態(tài)創(chuàng)建類動態(tài)語言和靜態(tài)語言最大的不同,就是函數(shù)和類的定義,不是編譯時定義的,而是運行時動態(tài)創(chuàng)建的。

下面看一個例子:

# 定義一個Person類class Person(object): def __init__(self): pass def say(self): print(’say hello’)p = Person()p.say()# 輸出 say helloprint(type(p)) # 輸出 <class ’__main__.Person’>print(type(Person)) # 輸出 <class ’type’>

運行結(jié)果:

say hello<class ’__main__.Person’><class ’type’>

我們發(fā)現(xiàn),type(Person)輸出的是<class ’type’>是type類型。

type()函數(shù)可以查看一個類型或變量的類型,Person是一個class(類),它的類型是type,而p是一個 Person的實例,它的類型是Person類。

我們說class(類)的定義是運行時動態(tài)創(chuàng)建的,而創(chuàng)建class(類)的方法就是使用type()函數(shù)。

eg:

# 定義一個方法def func(self, word=’hello’): print(’say %s’ % word)Person = type(’Person’, (object,), dict(say=func)) # 通過type創(chuàng)建Person類p = Person()p.say() # 輸出 say helloprint(type(p)) # 輸出 <class ’__main__.Person’>print(type(Person)) # 輸出 <class ’type’>

運行結(jié)果:

say hello<class ’__main__.Person’><class ’type’>

type函數(shù)動態(tài)創(chuàng)建類,需要傳入3個參數(shù),分別是:

第一個參數(shù):class的名稱 第二個參數(shù):繼承的父類集合,注意Python支持多重繼承,如果只有一個父類,別忘了tuple的單元素寫法(tuple單元素寫法(obj,)); 第三個參數(shù):class的方法名稱與函數(shù)綁定,這里我們把函數(shù)func綁定到方法名say上。

通過type()函數(shù)創(chuàng)建的類和直接寫class是完全一樣的,因為Python解釋器遇到class定義時,僅僅是掃描一下class定義的語法,然后調(diào)用type()函數(shù)創(chuàng)建出class。

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python面向?qū)ο蟪绦蛟O(shè)計入門與進階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進階經(jīng)典教程》

希望本文所述對大家Python程序設(shè)計有所幫助。

標簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 灌南县| 柳州市| 福安市| 玉田县| 日喀则市| 通道| 陵川县| 石景山区| 湛江市| 邢台县| 尚志市| 新宁县| 新乡市| 竹山县| 平湖市| 霍州市| 莎车县| 隆林| 白朗县| 拉萨市| 彭州市| 和顺县| 昌都县| 抚顺市| 巴青县| 绥阳县| 嘉定区| 资兴市| 通州区| 齐齐哈尔市| 巨鹿县| 天柱县| 五家渠市| 新营市| 湾仔区| 灵武市| 随州市| 二连浩特市| 都匀市| 台北市| 武鸣县|