亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

方法如何透明地查看函數屬性

方法如何透明地查看函數屬性

慕絲7291255 2021-07-30 00:24:14
我最近編寫了一些需要標記屬性的函數:def fn1(): passfn1.mark = True實際的標記是由裝飾者完成的,但它既不在這里也不在那里。我擔心的是,當我以相同的方式標記類中的方法時,在綁定方法時標記將不可見:class A:    def meth1(): pass    meth1.mark = True但實際上該屬性是可見的:>>> fn1.markTrue>>> A.meth1.markTrue>>> A().meth1.markTrue但是,不能在綁定方法中分配或刪除屬性,因為它可以在函數中:>>> A().meth1.mark = FalseAttributeError: 'method' object has no attribute 'mark'>>> del A().meth1.markAttributeError: 'method' object has no attribute 'mark'方法的屬性在綁定時如何使其可見?
查看完整描述

1 回答

?
LEATH

TA貢獻1936條經驗 獲得超7個贊

方法對象實現__getattribute__將未知屬性的屬性訪問委托給底層函數對象。__setattr__但是,他們不委托,這就是分配失敗的原因。如果你想看代碼,它method_getattroObjects/classobject.c.


查看完整回答
反對 回復 2021-08-03
  • 1 回答
  • 0 關注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號