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

Python面向?qū)ο笾畠?nèi)置函數(shù)相關(guān)知識總結(jié)

 更新時間:2021年06月24日 14:37:13   作者:華青水上  
本次要總結(jié)的的內(nèi)置函數(shù)共8個,他們都跟面向?qū)ο蟮闹R相關(guān),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下

Python內(nèi)置函數(shù)

1. classmethod、staticmethod、property 。

上述三個內(nèi)置函數(shù)在文章(Python進(jìn)階——面向?qū)ο笾蓡T)的方法和屬性中已經(jīng)詳細(xì)介紹使用,可以返回瀏覽,具體地址:http://www.dbjr.com.cn/article/215871.htm

2. callable,是否可在后面加括號執(zhí)行。

 函數(shù)

def func():
    pass
 
print( callable(func) ) # True

class Foo(object):
    pass
 
print( callable(Foo) ) # True

類中具有__call__方法的對象

class Foo(object):
	pass
 
obj = Foo()
print( callable(obj) ) # False
class Foo(object):
 
    def __call__(self, *args, **kwargs):
        pass
    
obj = Foo()
print( callable(obj) ) # True

所以當(dāng)你以后在見到下面的情況時,首先就要想到handler可以是:函數(shù)、類、具有call方法的對象 這三種,到底具體是什么,需要根據(jù)代碼的調(diào)用關(guān)系才能分析出來。

def do_something(handler):
    handler()

3. super,按照mro繼承關(guān)系向上找成員。

class Top(object):
    def message(self, num):
        print("Top.message", num)
        
class Base(Top):
    pass
 
class Foo(Base):
 
    def message(self, num):
        print("Foo.message", num)
        super().message(num + 100)
 
 
obj = Foo()
obj.message(1)
 
>>> Foo.message 1
>>> Top.message 101
class Base(object):
 
    def message(self, num):
        print("Base.message", num)
        super().message(1000)
 
 
class Bar(object):
 
    def message(self, num):
        print("Bar.message", num)
 
 
class Foo(Base, Bar):
    pass
 
 
obj = Foo()
obj.message(1)
 
>>> Base.message 1
>>> Bar.message 1000

應(yīng)用場景

假設(shè)有一個類,他原來已實現(xiàn)了某些功能,但我們想在他的基礎(chǔ)上再擴展點功能,重新寫一遍?比較麻煩,此時可以用super。

info = dict() # {}
info['name'] = "華青水上"
info["age"] = 18
 
value = info.get("age")
 
print(value)
class MyDict(dict):
 
    def get(self, k):
        print("自定義功能")
        return super().get(k)
 
 
info = MyDict()
info['name'] = "華青水上" # __setitem__
info["age"] = 18       # __setitem__
print(info)
 
value = info.get("age")
 
print(value)

4. type,獲取一個對象的類型。

v1 = "華青水上"
result = type(v1)
print(result) # <class 'str'>
v2 = "華青水上"
print( type(v2) == str )  # True
 
v3 = [11, 22, 33] # list(...)
print( type(v3) == list )  # True
class Foo(object):
    pass
 
v4 = Foo()
 
print( type(v4) == Foo )  # True

5. isinstance,判斷對象是否是某個類或其子類的實例。

class Top(object):
    pass
 
 
class Base(Top):
    pass
 
 
class Foo(Base):
    pass
 
 
v1 = Foo()
 
print( isinstance(v1, Foo) )   # True,對象v1是Foo類的實例
print( isinstance(v1, Base) )  # True,對象v1的Base子類的實例。
print( isinstance(v1, Top) )   # True,對象v1的Top子類的實例。
class Animal(object):
    def run(self):
        pass
 
class Dog(Animal):
    pass
 
class Cat(Animal):
    pass
 
data_list = [
    "alex",
    Dog(),
    Cat(),
	"root"
]
 
for item in data_list:
    if type(item) == Cat:
        item.run()
    elif type(item) == Dog:
        item.run()
    else:
        pass
    
for item in data_list:
    if isinstance(item, Animal):
        item.run()
    else:
        pass

6. issubclass,判斷類是否是某個類的子孫類。

class Top(object):
    pass
 
 
class Base(Top):
    pass
 
 
class Foo(Base):
    pass
 
 
print(issubclass(Foo, Base))  # True
print(issubclass(Foo, Top))   # True

至此,關(guān)于面向?qū)ο蟮囊恍﹥?nèi)置函數(shù)已經(jīng)總結(jié)完畢,如有不當(dāng)之處,歡迎指正!

到此這篇關(guān)于Python面向?qū)ο笾畠?nèi)置函數(shù)相關(guān)知識總結(jié)的文章就介紹到這了,更多相關(guān)Python內(nèi)置函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Python的Django框架中的通用視圖

    詳解Python的Django框架中的通用視圖

    這篇文章主要介紹了詳解Python的Django框架中的通用視圖,是為MVC架構(gòu)的Django框架下的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • Python中使用pypdf2合并、分割、加密pdf文件的代碼詳解

    Python中使用pypdf2合并、分割、加密pdf文件的代碼詳解

    這篇文章主要介紹了Python中使用pypdf2合并、分割、加密pdf文件的代碼,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • 淺談Python之Django(二)

    淺談Python之Django(二)

    這篇文章主要介紹了Python3中的Django,小編覺得這篇文章寫的還不錯,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧,希望能夠給你帶來幫助
    2021-10-10
  • python生成png的方法

    python生成png的方法

    本文主要介紹了python生成png的方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 如何用Python破解wifi密碼過程詳解

    如何用Python破解wifi密碼過程詳解

    這篇文章主要介紹了如何用Python破解wifi密碼過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • python備份文件的腳本

    python備份文件的腳本

    作用:將目錄備份到其他路徑。
    2008-08-08
  • 深度學(xué)習(xí)tensorflow基礎(chǔ)mnist

    深度學(xué)習(xí)tensorflow基礎(chǔ)mnist

    mnist作為深度學(xué)習(xí)中的HelloWorld,該小工程詳細(xì)描述了如何從零開始深度學(xué)習(xí),代碼詳細(xì),解釋全面,需要的朋友可以參考下
    2021-04-04
  • 幾款好用的python工具庫(小結(jié))

    幾款好用的python工具庫(小結(jié))

    這篇文章主要介紹了幾款好用的python工具庫(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Pytest參數(shù)化parametrize使用代碼實例

    Pytest參數(shù)化parametrize使用代碼實例

    這篇文章主要介紹了Pytest參數(shù)化parametrize使用代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • python/sympy求解矩陣方程的方法

    python/sympy求解矩陣方程的方法

    今天小編就為大家分享一篇python/sympy求解矩陣方程的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11

最新評論