最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python原類(lèi)、類(lèi)的創(chuàng)建過(guò)程與方法詳解

 更新時(shí)間:2019年07月19日 14:47:25   作者:華為云  
在本篇文章里小編給各位分享了關(guān)于python原類(lèi)、類(lèi)的創(chuàng)建過(guò)程與方法的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們跟著學(xué)習(xí)參考下。

今天為大家介紹一下python中與class 相關(guān)的知識(shí)……

獲取對(duì)象的類(lèi)名

python是一門(mén)面向?qū)ο蟮恼Z(yǔ)言,對(duì)于一切接對(duì)象的python來(lái)說(shuō),咱們有必要深入的學(xué)習(xí)與了解一些知識(shí)

首先大家都知道,要獲取一個(gè)對(duì)象所對(duì)應(yīng)的類(lèi),需要使用class來(lái)進(jìn)行檢索。

但如果我們只是一個(gè)簡(jiǎn)單的賦值語(yǔ)句,能這么使用么?讓我們看下下面的代碼:

num=10
string='abc'
class MainClass:
  pass
p=MainClass()
 
print(num.__class__)
# output: <class 'int'>
print(string.__class__)
# output: <class 'str'>
print(p.__class__)
# output: <class '__main__.MainClass'>

通過(guò)上面的代碼我們看到了,不論我們是簡(jiǎn)單的賦值操作,還是我們自己去定義一個(gè)類(lèi),并且通過(guò)這個(gè)類(lèi)生成了一個(gè)對(duì)象。我們都可以使用__class__來(lái)查詢對(duì)象所對(duì)應(yīng)的方法。此處應(yīng)該大多數(shù)人都是了解的。繼續(xù)往下走

將我們眼中的類(lèi)作為對(duì)象

剛才我們通過(guò)__class的方式獲取了str、int、還有我們自定義的MainClass這三個(gè)類(lèi)名。

但如果我們繼續(xù)把他們作為對(duì)象,那么所對(duì)應(yīng)的類(lèi)是誰(shuí)呢?讓我們打印下

print(int.__class__) # 或者這么寫(xiě):print(num.__class__.__class__)
# output: <class 'type'>
print(str.__class__)
# output: <class 'type'>
print(MainClass.__class__)
# output: <class 'type'>

class 'type' 這是一個(gè)什么鬼?

它叫原類(lèi),是創(chuàng)造其他類(lèi)的類(lèi)…

有人要問(wèn)了,type就是祖宗了么?還有沒(méi)有祖宗的祖宗?你可以自己驗(yàn)證啊,按照上面的方法

print(type.__class__)
output: <class 'type'>

這下死心了啊,type這個(gè)祖宗上面沒(méi)有祖宗了。哈哈….

為什么是type

type這個(gè)函數(shù)我們經(jīng)常會(huì)用到,比如一個(gè)對(duì)象,我們想知道它是什么類(lèi)型的,那么我們會(huì)使用type(xxx)

那么type它到底是什么?看源碼嘍…

class type(object):
  """
  type(object_or_name, bases, dict)
  type(object) -> the object's type
  type(name, bases, dict) -> a new type
  """
  ... ...
  ... ...

看到注釋的時(shí)候我們明白了,type有兩個(gè)用法

獲取類(lèi)型

創(chuàng)建新type

相信第一點(diǎn),我們都經(jīng)常用,否了解。

第二點(diǎn)是干嘛的?讓我們留一個(gè)懸念,接著往下看

類(lèi)的99.99%創(chuàng)建方法

所有人不管是java的還是Python的都明白,創(chuàng)建一個(gè)類(lèi)么,class+類(lèi)名 OK了

那么你知道你在class+類(lèi)名,然后賦值或者定義實(shí)例方法的時(shí)候到底內(nèi)存做了什么

class MainClass:
  name='Uranus'

這個(gè)方法應(yīng)該是比pass高檔一分錢(qián)不到的腦殘類(lèi)了。可你知道在內(nèi)存中它做了什么么?

  • 首先他創(chuàng)建了一個(gè)變量,變量的名字叫MainClass
  • 之后python開(kāi)辟了一塊內(nèi)存空間,用于創(chuàng)建一個(gè)類(lèi),類(lèi)名為ClassMain
  • 將ClassMain這個(gè)變量指向ClassMain
  • 在這個(gè)方法中創(chuàng)建一個(gè)dict的字典
  • dict這個(gè)字典指向一個(gè)內(nèi)存空間,存放著{name:Uranus}

和你們想的一樣么?先不說(shuō)一樣不一樣,估計(jì)很多人都要說(shuō)我是瞎說(shuō)的…沒(méi)關(guān)系

介紹0.01%的類(lèi)創(chuàng)建方法

剛才留了一個(gè)疑問(wèn),type的第二種用法,用來(lái)創(chuàng)建一個(gè)新的type

它是做什么的呢?讓我先來(lái)演示一段代碼

def func():
  return 'is a function...'
# 重點(diǎn)在這里
TypeClass=type('MainClass1',(),{'name':'Uranus','func':func})
 
print(TypeClass.__class__)
# output: <class 'type'>
 
print(TypeClass)
# output: <class '__main__.MainClass1'>
 
print(TypeClass.__dict__)
# output: {'__module__': '__main__', '__weakref__': <attribute '__weakref__' of 'MainClass1' objects>, '__dict__': <attribute '__dict__' of 'MainClass1' objects>, '__doc__': None, 'func': <function func at 0x00000000024DDEA0>, 'name': 'Uranus'}
 
print(TypeClass.name)
# output: Uranus
 
print(TypeClass.func())
# output: is a function...

好了,現(xiàn)在告訴我,TypeClass是什么,是不是一個(gè)類(lèi)?

我在type中做了什么,是不是創(chuàng)建類(lèi)名,忽略父類(lèi),創(chuàng)建類(lèi)屬性,創(chuàng)建類(lèi)的實(shí)例方法?

傳統(tǒng)的class創(chuàng)建,知識(shí)將TypeClass這個(gè)變量名設(shè)置的和你的類(lèi)名MainClass1一樣而已
type的第二種方法你會(huì)了么?類(lèi)的創(chuàng)建過(guò)程你明白了么?之前你會(huì)么?

感謝大家的閱讀和對(duì)腳本之家的支持。

相關(guān)文章

  • Pycharm 如何設(shè)置HTML文件自動(dòng)補(bǔ)全代碼或標(biāo)簽

    Pycharm 如何設(shè)置HTML文件自動(dòng)補(bǔ)全代碼或標(biāo)簽

    這篇文章主要介紹了Pycharm 如何設(shè)置HTML文件自動(dòng)補(bǔ)全代碼或標(biāo)簽,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • ?python中的元類(lèi)metaclass詳情

    ?python中的元類(lèi)metaclass詳情

    這篇文章主要介紹了python中的metaclass詳情,在python中的metaclass就是幫助developer實(shí)現(xiàn)元編程,更多詳細(xì)內(nèi)容需要的小伙伴可以參考一下
    2022-05-05
  • Python 模擬生成動(dòng)態(tài)產(chǎn)生驗(yàn)證碼圖片的方法

    Python 模擬生成動(dòng)態(tài)產(chǎn)生驗(yàn)證碼圖片的方法

    這篇文章主要介紹了Python 模擬生成動(dòng)態(tài)產(chǎn)生驗(yàn)證碼圖片的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 基于Python實(shí)現(xiàn)剪切板實(shí)時(shí)監(jiān)控方法解析

    基于Python實(shí)現(xiàn)剪切板實(shí)時(shí)監(jiān)控方法解析

    這篇文章主要介紹了基于Python實(shí)現(xiàn)剪切板實(shí)時(shí)監(jiān)控方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 在python中調(diào)用C/C++的三種方法

    在python中調(diào)用C/C++的三種方法

    這篇文章主要給大家介紹了關(guān)于在python中調(diào)用C/C++的三種方法,Python可以通過(guò)調(diào)用C/C++接口來(lái)實(shí)現(xiàn)與C/C++語(yǔ)言的交互,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • python實(shí)現(xiàn)的文件夾清理程序分享

    python實(shí)現(xiàn)的文件夾清理程序分享

    這篇文章主要介紹了python實(shí)現(xiàn)的文件夾清理程序分享,可以按時(shí)間清理和指定配置文件清理,需要的朋友可以參考下
    2014-11-11
  • Python中構(gòu)建終端應(yīng)用界面利器Blessed模塊的使用

    Python中構(gòu)建終端應(yīng)用界面利器Blessed模塊的使用

    Blessed?庫(kù)作為一個(gè)輕量級(jí)且功能強(qiáng)大的解決方案,開(kāi)始在開(kāi)發(fā)者中贏得口碑,今天,我們就一起來(lái)探索一下它是如何讓終端UI開(kāi)發(fā)變得輕松而高效的吧
    2025-01-01
  • Opencv圖像處理:如何判斷圖片里某個(gè)顏色值占的比例

    Opencv圖像處理:如何判斷圖片里某個(gè)顏色值占的比例

    這篇文章主要介紹了Opencv圖像處理:如何判斷圖片里某個(gè)顏色值占的比例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • pytest conftest.py文件的使用講解

    pytest conftest.py文件的使用講解

    這篇文章主要介紹了pytest的conftest.py文件的使用講解,幫助大家更好的理解和學(xué)習(xí)使用pytest框架,感興趣的朋友可以了解下
    2021-03-03
  • Python中Sorted()函數(shù)的key參數(shù)使用方法詳解

    Python中Sorted()函數(shù)的key參數(shù)使用方法詳解

    這篇文章主要介紹了關(guān)于Python中Sorted()函數(shù)的key參數(shù)使用方法 ,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-06-06

最新評(píng)論

朝阳市| 凤翔县| 洞头县| 凌云县| 波密县| 雷州市| 迭部县| 许昌市| 克东县| 湄潭县| 兴海县| 巩义市| 黎平县| 武定县| 东兴市| 紫金县| 冕宁县| 思南县| 金川县| 迭部县| 盐津县| 新余市| 敦煌市| 三门峡市| 茶陵县| 北辰区| 常宁市| 康乐县| 阳西县| 凤山县| 定日县| 景东| 邵武市| 枞阳县| 莱州市| 洛川县| 布尔津县| 兴山县| 龙里县| 泸溪县| 宁化县|