logo
Loading...

getattr(object, name)的用法與後面加了()的用意 - Cupoy

在教學中寫到:def spam(s): for attr in ['isnumeric...

getattr(object, name)的用法與後面加了()的用意

2020/11/19 下午 09:24
翁如萱
觀看數:103
回答數:2
收藏數:2

在教學中寫到: def spam(s): for attr in ['isnumeric', 'isdecimal', 'isdigit']: print(attr, getattr(s, attr)()) 而菜鳥教程寫到,getattr用法是->getattr(object, attr), 並回傳屬性值 >>>class A(object): ... bar = 1 ... >>> a = A() >>> getattr(a, 'bar') # 获取属性 bar 值 1 想問一下教學中getattr(s, attr)()後面的()用處為何?是s.attr()的概念嗎?(e.g. : s.isnumeric())

回答列表

  • 2020/11/19 下午 11:23
    張維元 (WeiYuan)
    贊同數:1
    不贊同數:0
    留言數:0

    嗨,你好
    getattr(s, attr) 會回傳 attr 這個屬性,但 attr 剛好又是 function ,所以可以被呼叫。也就是你講的 s.isnumeric() 的意思沒錯。

    嗨,你好,我是維元,持續在不同的平台發表對 #資料科學、 #網頁開發 或 #軟體職涯 相關的文章。如果對於內文有疑問都歡迎與我們進一步的交流,都可以追蹤我的 Facebook技術部落格 ,也會不定時的舉辦分享活動,一起來玩玩吧 ヽ(●´∀`●)ノ

  • 2020/11/20 上午 09:43
    楊哲寧
    贊同數:1
    不贊同數:0
    留言數:0

    承如維元專家提到的,您可以使用查看getattr('3', 'isnumeric')返回的屬性,其為 ,代表其是可以被調用的function,之後也會在其他程式碼看到相同的操作,我們都可以用callable()查看物件屬性。 ```python callable(getattr('3', 'isnumeric')) #return -> True ```