亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

詳解python自定義方法屬性

shery / 1658人閱讀

摘要:在自定義方法中有一些只讀屬性,一般我們用不到,但是了解下也不錯,通過這篇文章,我們還可以了解到綁定方法和非綁定方法的區(qū)別。指代綁定方法的類或者調(diào)用非綁定方法的類。

在python自定義方法中有一些只讀屬性,一般我們用不到,但是了解下也不錯,通過這篇文章,我們還可以了解到==綁定方法==和==非綁定方法==的區(qū)別。

im_self 指代類的實例對象。

im_func 指代函數(shù)對象。

im_class 指代綁定方法的類或者調(diào)用非綁定方法的類。

__doc__ 方法的文檔注釋

__name__ 方法名

__module__ 方法所在的模塊名。

__func__ 等價于im_func

__self__ 等價于im_self

示例如下:

class Stu(object):
    def __init__(self, name):
        self.name = name

    def get_name(self):
        "this is the doc"
        return self.name

def show_attributes(method):
    print "im_self=", method.im_self
    print "__self__=", method.__self__
    print "im_func=", method.im_func
    print "__func__=", method.__func__
    print "im_class=", method.im_class
    print "__doc__=", method.__doc__
    print "__module__=", method.__module__
    
print "...........bounded method........"
stu=Stu("Jim")
method = stu.get_name
show_attributes(method)
method()
print "...........unbounded method......"
method = Stu.get_name
show_attributes(method)
method()

輸出結(jié)果如下:

...........bounded method.......Traceback (most recent call last):.
im_self= <__main__.Stu object at 0x0245D2B0>
__self__= <__main__.Stu object at 0x0245D2B0>
im_func= 
__func__= 
im_class= 
__doc__= this is the doc
__module__= __main__
...........unbounded method......
im_self= None
__self__= None
im_func= 
__func__= 
im_class= 
__doc__= this is the doc
__module__= __main__

  File "E:demopydemo.py", line 29, in 
    method()
TypeError: unbound method get_name() must be called with Stu instance as first argument (got nothing instead)

從上面的輸出結(jié)果可以看出,當(dāng)通過類直接調(diào)用方法時,方法的im_self__self__屬性為None,該方法為非綁定方法(unbound method),當(dāng)我們通過實例調(diào)用該方法時,方法的im_self__self__屬性為實例對象。這時該方法為綁定方法(bound method),但是不管哪種情況,方法的im_class都為調(diào)用類,而im_func為原始的函數(shù)對象。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/38009.html

相關(guān)文章

  • Python -- 元類metaclass詳解

    摘要:原鏈接中的元類是什么類也是對象在理解元類之前,需要掌握中類概念。事實上,是中用于創(chuàng)建所有類的元類。類本身是元類的對象在中,除了,一切皆對象,一切都是類或者元類的對象。事實上是自己的元類, 學(xué)習(xí)契機(jī) 項目中使用Elasticsearch(ES)存儲海量業(yè)務(wù)數(shù)據(jù),基于ES向外提供的API進(jìn)一層封裝,按需處理原始數(shù)據(jù)提供更精確、更多樣化的結(jié)果。在研究這一層的代碼時接觸到@six.add_me...

    tracy 評論0 收藏0
  • SpringBoot 實戰(zhàn) (三) | 配置文件詳解

    摘要:前言如題,今天解析下的配置文件。這時我們就可以用的屬性來配置隨機(jī)數(shù),比如隨機(jī)字符串隨機(jī)隨機(jī)以內(nèi)的隨機(jī)數(shù)的隨機(jī)數(shù)使用多配置文件很多時候我們開發(fā)項目都需要很多套環(huán)境,比如有測試環(huán)境,開發(fā)環(huán)境以及生產(chǎn)環(huán)境。原因是,是以的編碼方式讀取配置文件。 微信公眾號:一個優(yōu)秀的廢人如有問題或建議,請后臺留言,我會盡力解決你的問題。 前言 如題,今天解析下 SpringBoot 的配置文件。 自定義屬性加...

    chenjiang3 評論0 收藏0
  • 私有化規(guī)則與屬性Property

    摘要:上一篇文章裝飾器真正入門的鑒定標(biāo)準(zhǔn)下一篇文章垃圾回收詳解私有化變量定義規(guī)則變量形式解讀公有變量單前置下劃線,私有化屬性或方法,禁止導(dǎo)入,類對象和子類進(jìn)可以訪問。雙前置下劃線,避免與子類中的屬性命名沖突,無法再在外部直接訪問。 上一篇文章:Python裝飾器:python真正入門的鑒定標(biāo)準(zhǔn)下一篇文章:Python垃圾回收詳解 1、私有化 變量定義規(guī)則 變量形式 解讀 xx 公...

    whjin 評論0 收藏0

發(fā)表評論

0條評論

shery

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<