摘要:在自定義方法中有一些只讀屬性,一般我們用不到,但是了解下也不錯(cuò),通過這篇文章,我們還可以了解到綁定方法和非綁定方法的區(qū)別。指代綁定方法的類或者調(diào)用非綁定方法的類。
在python自定義方法中有一些只讀屬性,一般我們用不到,但是了解下也不錯(cuò),通過這篇文章,我們還可以了解到==綁定方法==和==非綁定方法==的區(qū)別。
im_self 指代類的實(shí)例對(duì)象。
im_func 指代函數(shù)對(duì)象。
im_class 指代綁定方法的類或者調(diào)用非綁定方法的類。
__doc__ 方法的文檔注釋
__name__ 方法名
__module__ 方法所在的模塊名。
__func__ 等價(jià)于im_func
__self__ 等價(jià)于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)用方法時(shí),方法的im_self與__self__屬性為None,該方法為非綁定方法(unbound method),當(dāng)我們通過實(shí)例調(diào)用該方法時(shí),方法的im_self與__self__屬性為實(shí)例對(duì)象。這時(shí)該方法為綁定方法(bound method),但是不管哪種情況,方法的im_class都為調(diào)用類,而im_func為原始的函數(shù)對(duì)象。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/38009.html
摘要:原鏈接中的元類是什么類也是對(duì)象在理解元類之前,需要掌握中類概念。事實(shí)上,是中用于創(chuàng)建所有類的元類。類本身是元類的對(duì)象在中,除了,一切皆對(duì)象,一切都是類或者元類的對(duì)象。事實(shí)上是自己的元類, 學(xué)習(xí)契機(jī) 項(xiàng)目中使用Elasticsearch(ES)存儲(chǔ)海量業(yè)務(wù)數(shù)據(jù),基于ES向外提供的API進(jìn)一層封裝,按需處理原始數(shù)據(jù)提供更精確、更多樣化的結(jié)果。在研究這一層的代碼時(shí)接觸到@six.add_me...
摘要:前言如題,今天解析下的配置文件。這時(shí)我們就可以用的屬性來(lái)配置隨機(jī)數(shù),比如隨機(jī)字符串隨機(jī)隨機(jī)以內(nèi)的隨機(jī)數(shù)的隨機(jī)數(shù)使用多配置文件很多時(shí)候我們開發(fā)項(xiàng)目都需要很多套環(huán)境,比如有測(cè)試環(huán)境,開發(fā)環(huán)境以及生產(chǎn)環(huán)境。原因是,是以的編碼方式讀取配置文件。 微信公眾號(hào):一個(gè)優(yōu)秀的廢人如有問題或建議,請(qǐng)后臺(tái)留言,我會(huì)盡力解決你的問題。 前言 如題,今天解析下 SpringBoot 的配置文件。 自定義屬性加...
摘要:上一篇文章裝飾器真正入門的鑒定標(biāo)準(zhǔn)下一篇文章垃圾回收詳解私有化變量定義規(guī)則變量形式解讀公有變量單前置下劃線,私有化屬性或方法,禁止導(dǎo)入,類對(duì)象和子類進(jìn)可以訪問。雙前置下劃線,避免與子類中的屬性命名沖突,無(wú)法再在外部直接訪問。 上一篇文章:Python裝飾器:python真正入門的鑒定標(biāo)準(zhǔn)下一篇文章:Python垃圾回收詳解 1、私有化 變量定義規(guī)則 變量形式 解讀 xx 公...
閱讀 2671·2023-04-25 18:10
閱讀 1606·2019-08-30 15:53
閱讀 2788·2019-08-30 13:10
閱讀 3216·2019-08-29 18:40
閱讀 1128·2019-08-23 18:31
閱讀 1201·2019-08-23 16:49
閱讀 3400·2019-08-23 16:07
閱讀 877·2019-08-23 15:27