欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2020年02月29日 18:04:34   作者:張行之  
這篇文章主要介紹了Python使用type動態(tài)創(chuàng)建類操作,結(jié)合實例形式詳細分析了Python使用type動態(tài)創(chuàng)建類的具體原理、實現(xiàn)方法與操作注意事項,需要的朋友可以參考下

本文實例講述了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 hello

print(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 hello

print(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è)計有所幫助。

相關(guān)文章

  • Python中常見的KeyError報錯分析

    Python中常見的KeyError報錯分析

    在Python編程中,KeyError是一種非常常見的異常,它通常發(fā)生在嘗試訪問字典中不存在的鍵時,本文將深入探討KeyError的報錯原因、解決辦法,并通過代碼示例來演示如何避免這一錯誤,需要的朋友可以參考下
    2024-07-07
  • python通過裝飾器檢查函數(shù)參數(shù)數(shù)據(jù)類型的方法

    python通過裝飾器檢查函數(shù)參數(shù)數(shù)據(jù)類型的方法

    這篇文章主要介紹了python通過裝飾器檢查函數(shù)參數(shù)數(shù)據(jù)類型的方法,涉及Python裝飾器的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • Python 模擬登陸的兩種實現(xiàn)方法

    Python 模擬登陸的兩種實現(xiàn)方法

    這篇文章主要介紹了Python 模擬登陸的兩種實現(xiàn)方法的相關(guān)資料,這里提供兩種方法一個是普通寫法寫的,另外一個是基于面向?qū)ο髮懙?,模擬登錄成功后才可能抓取內(nèi)容,需要的朋友可以參考下
    2017-08-08
  • 使用python計算三角形的斜邊例子

    使用python計算三角形的斜邊例子

    這篇文章主要介紹了使用python計算三角形的斜邊例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • python排序算法之選擇排序

    python排序算法之選擇排序

    這篇文章主要介紹了python排序算法之選擇排序,選擇排序表示從無序的數(shù)組中,每次選擇最小或最大的數(shù)據(jù),從無序數(shù)組中放到有序數(shù)組的末尾,以達到排序的效果,需要的朋友可以參考下
    2023-04-04
  • python 拼接文件路徑的方法

    python 拼接文件路徑的方法

    今天小編就為大家分享一篇python 拼接文件路徑的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • python爬蟲將js轉(zhuǎn)化成json實現(xiàn)示例

    python爬蟲將js轉(zhuǎn)化成json實現(xiàn)示例

    這篇文章主要為大家介紹了python爬蟲將js轉(zhuǎn)化成json實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • python實現(xiàn)自動登錄人人網(wǎng)并訪問最近來訪者實例

    python實現(xiàn)自動登錄人人網(wǎng)并訪問最近來訪者實例

    這篇文章主要介紹了python實現(xiàn)自動登錄人人網(wǎng)并訪問最近來訪者實例,該實例是在前面登錄人人網(wǎng)實例基礎(chǔ)上的擴展,是非常實用的一個技巧,需要的朋友可以參考下
    2014-09-09
  • Python對切片命名的實現(xiàn)方法

    Python對切片命名的實現(xiàn)方法

    在本篇文章里我們給大家分享了關(guān)于Python對切片命名的實現(xiàn)方法的相關(guān)知識點內(nèi)容,有需要的朋友們學習下。
    2018-10-10
  • tensorflow saver 保存和恢復(fù)指定 tensor的實例講解

    tensorflow saver 保存和恢復(fù)指定 tensor的實例講解

    今天小編就為大家分享一篇tensorflow saver 保存和恢復(fù)指定 tensor的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07

最新評論