婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Python面向對象之內置函數相關知識總結

Python面向對象之內置函數相關知識總結

熱門標簽:銀川電話機器人電話 企業彩鈴地圖標注 如何地圖標注公司 長春極信防封電銷卡批發 外賣地址有什么地圖標注 上海正規的外呼系統最新報價 煙臺電話外呼營銷系統 電銷機器人錄音要學習什么 預覽式外呼系統

Python內置函數

1. classmethod、staticmethod、property 。

上述三個內置函數在文章(Python進階——面向對象之成員)的方法和屬性中已經詳細介紹使用,可以返回瀏覽,具體地址:https://www.jb51.net/article/215871.htm

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

 函數

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

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

def do_something(handler):
    handler()

3. super,按照mro繼承關系向上找成員。

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

應用場景

假設有一個類,他原來已實現了某些功能,但我們想在他的基礎上再擴展點功能,重新寫一遍?比較麻煩,此時可以用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

至此,關于面向對象的一些內置函數已經總結完畢,如有不當之處,歡迎指正!

到此這篇關于Python面向對象之內置函數相關知識總結的文章就介紹到這了,更多相關Python內置函數內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python初學者必須掌握的25個內置函數詳解
  • 10個使用Python必須知道的內置函數
  • Python函數的作用域及內置函數詳解
  • python內置函數之slice案例詳解
  • Python 內置函數速查表一覽
  • python高級內置函數用法實例

標簽:潮州 宜昌 湖北 佳木斯 珠海 盤錦 西寧 上饒

巨人網絡通訊聲明:本文標題《Python面向對象之內置函數相關知識總結》,本文關鍵詞  Python,面向,對,象之,內置,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python面向對象之內置函數相關知識總結》相關的同類信息!
  • 本頁收集關于Python面向對象之內置函數相關知識總結的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 黑龙江省| 石林| 封开县| 土默特右旗| 濉溪县| 桦川县| 昌吉市| 临桂县| 体育| 太康县| 象山县| 青神县| 白水县| 新野县| 福安市| 广宁县| 晋州市| 信宜市| 五台县| 嘉义市| 大新县| 莫力| 松原市| 泸西县| 蕲春县| 麻城市| 梨树县| 瑞丽市| 炎陵县| 德昌县| 如皋市| 安达市| 宜兰市| 商都县| 莱州市| 潼南县| 宜宾县| 淮北市| 恩平市| 高淳县| 大邑县|