国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

詳解python自定義方法屬性

shery / 1604人閱讀

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

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

im_self 指代類的實例對象。

im_func 指代函數對象。

im_class 指代綁定方法的類或者調用非綁定方法的類。

__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()

輸出結果如下:

...........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)

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/38009.html

相關文章

  • Python -- 元類metaclass詳解

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

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

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

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

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

    whjin 評論0 收藏0

發表評論

0條評論

shery

|高級講師

TA的文章

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