欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python原類、類的創建過程與方法詳解

系統 1623 0

今天為大家介紹一下python中與class?相關的知識……

獲取對象的類名

python是一門面向對象的語言,對于一切接對象的python來說,咱們有必要深入的學習與了解一些知識

首先大家都知道,要獲取一個對象所對應的類,需要使用class來進行檢索。

但如果我們只是一個簡單的賦值語句,能這么使用么?讓我們看下下面的代碼:

            
num=10
string='abc'
class MainClass:
  pass
p=MainClass()
 
print(num.__class__)
# output: 
            
              
print(string.__class__)
# output: 
              
                
print(p.__class__)
# output: 
                
                
              
            
          

通過上面的代碼我們看到了,不論我們是簡單的賦值操作,還是我們自己去定義一個類,并且通過這個類生成了一個對象。我們都可以使用__class__來查詢對象所對應的方法。此處應該大多數人都是了解的。繼續往下走

將我們眼中的類作為對象

剛才我們通過__class的方式獲取了str、int、還有我們自定義的MainClass這三個類名。

但如果我們繼續把他們作為對象,那么所對應的類是誰呢?讓我們打印下

            
print(int.__class__) # 或者這么寫:print(num.__class__.__class__)
# output: 
            
              
print(str.__class__)
# output: 
              
                
print(MainClass.__class__)
# output: 
                
                
              
            
          

class 'type' 這是一個什么鬼?

它叫原類,是創造其他類的類…

有人要問了,type就是祖宗了么?還有沒有祖宗的祖宗?你可以自己驗證啊,按照上面的方法

            
print(type.__class__)
output: 
            
            
          

這下死心了啊,type這個祖宗上面沒有祖宗了。哈哈….

為什么是type

type這個函數我們經常會用到,比如一個對象,我們想知道它是什么類型的,那么我們會使用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
  """
  ... ...
  ... ...

          

看到注釋的時候我們明白了,type有兩個用法

獲取類型

創建新type

相信第一點,我們都經常用,否了解。

第二點是干嘛的?讓我們留一個懸念,接著往下看

類的99.99%創建方法

所有人不管是java的還是Python的都明白,創建一個類么,class+類名 OK了

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

            
class MainClass:
  name='Uranus'

          

這個方法應該是比pass高檔一分錢不到的腦殘類了。可你知道在內存中它做了什么么?

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

和你們想的一樣么?先不說一樣不一樣,估計很多人都要說我是瞎說的…沒關系

介紹0.01%的類創建方法

剛才留了一個疑問,type的第二種用法,用來創建一個新的type

它是做什么的呢?讓我先來演示一段代碼

            
def func():
  return 'is a function...'
# 重點在這里
TypeClass=type('MainClass1',(),{'name':'Uranus','func':func})
 
print(TypeClass.__class__)
# output: 
            
              
 
print(TypeClass)
# output: 
              
                
 
print(TypeClass.__dict__)
# output: {'__module__': '__main__', '__weakref__': 
                
                  , '__dict__': 
                  
                    , '__doc__': None, 'func': 
                    
                      , 'name': 'Uranus'}
 
print(TypeClass.name)
# output: Uranus
 
print(TypeClass.func())
# output: is a function...

                    
                  
                
              
            
          

好了,現在告訴我,TypeClass是什么,是不是一個類?

我在type中做了什么,是不是創建類名,忽略父類,創建類屬性,創建類的實例方法?

傳統的class創建,知識將TypeClass這個變量名設置的和你的類名MainClass1一樣而已
type的第二種方法你會了么?類的創建過程你明白了么?之前你會么?

感謝大家的閱讀和對腳本之家的支持。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品久久久久久久午夜 | 国产精品亚洲成在人线 | 国产精品色在线网站 | 天海翼视频在线 | 欧美综合区 | 麻豆av网站 | 国产目拍亚洲精品区一区 | 日韩第一页| 一本一本大道香蕉久在线精品 | 日本中文字幕视频 | 蜜臀传煤mv在线观看 | 一区二区三区精品视频 | 国产精品久久久久久中文字 | 欧美一级黄色免费看 | 欧美一区二区三区免费视频 | 日韩精品成人a在线观看 | 欧美成人生活片 | 蜜桃视频在线播放 | 亚洲成人日韩 | 色婷婷综合久久久中文字幕 | 欧美在线视频一区二区三区 | 中文字幕一区在线观看视频 | 日韩黄色网页 | 午夜色a大片在线观看免费 龙珠z在线观看 | 日韩一二三区 | 成av在线 | 亚洲精品一区二区网址 | 亚洲视频在线播放 | 黄色三级视频网站 | 在线观看成人 | 欧美一区二区三区久久久 | 日韩精品一区二区三区中文字幕 | 国产黄色一级毛片 | 九一国产在线观看免费 | 草草视频免费观看 | 91文字幕巨乱亚洲香蕉 | 亚洲高清视频在线 | 色射综合 | 久久一精品 | 国产视频大全 | 老头巨大校花体内驰骋小说文 |