免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
【Python核心編程筆記】一、Python中一切皆對象

Python中一切皆對象

本章節(jié)首先對比靜態(tài)語言以及動態(tài)語言,然后介紹 python 中最底層也是面向?qū)ο笞钪匾膸讉€概念-object、type和class之間的關(guān)系,以此來引出在python如何做到一切皆對象、隨后列舉python中的常見對象。

1.Python中一切皆對象

Python的面向?qū)ο蟾鼜氐祝琂ava和C++中基礎(chǔ)類型并不是對象。在Python中,函數(shù)和類也是對象,屬于Python的一等公民。對象具有如下4個特征

  • 1.賦值給一個變量
  • 2.可以添加到集合對象中
  • 3.可以作為參數(shù)傳遞給函數(shù)
  • 4.可以作為函數(shù)地返回值

下面從四個特征角度分別舉例說明函數(shù)和類也是對象

1.1 類和函數(shù)都可以賦值給一個變量

類可以賦值給一個變量

class Person:    def __init__(self, name="lsg"):        print(name)if __name__ == '__main__':    my_class = Person  # 類賦值給一個變量    my_class()  # 輸出lsg,變量直接調(diào)用就可以實例化一個類,滿足上面的特征1,這里顯然說明類也是一個對象    my_class("haha")  # 輸出haha

函數(shù)可以賦值給一個變量

def func_test(name='lsg'):    print(name)if __name__ == '__main__':    my_func = func_test    my_func("haha") # 輸出haha,對變量的操作就是對函數(shù)的操作,等效于對象的賦值,滿足上面的特征1,說明函數(shù)是對象。

1.2 類和函數(shù)都可以添加到集合中

class Person:    def __init__(self, name="lsg"):        print(name)def func_test(name='lsg'):    print(name)if __name__ == '__main__':    obj_list = [func_test, Person]    print(obj_list) # 輸出[<function func_test at 0x0000025856A2C1E0>, <class '__main__.Person'>]

1.3 類和函數(shù)都可以作為參數(shù)傳遞給函數(shù)

class Person:    def __init__(self, name="lsg"):        print(name)def func_test(name='lsg'):    print(name)def print_type(obj):    print(type(obj))if __name__ == '__main__':    print_type(func_test)    print_type(Person)

輸出如下

<class 'function'><class 'type'>

可以明顯地看出類和函數(shù)都是對象

1.4 類和函數(shù)都可以作為函數(shù)地返回值

class Person:    def __init__(self, name="lsg"):        print(name)def func_test(name='lsg'):    print(name)def decorator_func():    print("pre function")    return func_testdef decorator_class():    print("pre class")    return Personif __name__ == '__main__':    decorator_func()()  # 返回的右值作為函數(shù)可以直接調(diào)用    decorator_class()()  # 返回的右值作為類可以直接實例化

2.type、object和class的關(guān)系

代碼舉例如下, 可以得出三者的關(guān)系是type --> class --> obj

2.1 type --> int --> a

a = 1print(type(a)) # <class 'int'>print(type(int)) # <class 'type'>

2.2 type --> str --> b

b = 'abc'print(type(b)) # <class 'str'>print(type(str)) # <class 'type'>

2.3 type --> Student --> stu

class Student:    passstu = Student()print(type(stu)) # <class '__main__.Student'>print(type(Student)) # <class 'type'>

2.4 type --> list --> c

c = [1, 2]print(type(c)) # <class 'list'>print(type(list)) # <class 'type'>

總結(jié)圖:

3.Python中常見的內(nèi)置類型

對象的三個特征:身份、內(nèi)存和值

  • 身份:在內(nèi)存中的地址,可以用id(變量)函數(shù)來查看
  • 類型:任何變量都必須有類型

常見的內(nèi)置類型如下

3.1 None:全局只有一個

如下代碼,兩個值為None的變量地址完全相同,可見None是全局唯一的

a = Noneb = Noneprint(id(a))print(id(b))print(id(a) == id(b))

3.2 數(shù)值類型

  • int
  • float
  • complex(復(fù)數(shù))
  • bool

3.3 迭代類型:iterator

3.4 序列類型

  • list
  • bytes、bytearray、memoryview(二進(jìn)制序列)
  • range
  • tuple
  • str
  • array

3.5 映射類型(dict)

3.6 集合

  • set
  • frozenset

3.7 上下文管理類型(with)

3.8 其他

  • 模塊類型
  • class和實例
  • 函數(shù)類型
  • 方法類型
  • 代碼類型
  • object類型
  • type類型
  • elipsis類型
  • notimplemented類型

歡迎關(guān)注我的公眾號查看更多文章

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Python:Python學(xué)習(xí)總結(jié)
【Python3之函數(shù)對象】
理解 Python 裝飾器看這一篇就夠了
Python征途--嵌套函數(shù)/嵌套作用域/閉包
python基礎(chǔ)
[Python]年度黑馬Python 自省指南
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服