第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

獲取引用對(duì)象(可變級(jí)別)的最佳方法是什么

獲取引用對(duì)象(可變級(jí)別)的最佳方法是什么

假設(shè)以下情況:class foo(object):    def __init__(self, ref=None):        self.ref = ref    def __str__(self):        return "I'm foolish"f = foo()f.ref = foo()f.ref.ref = foo()f.ref.ref.ref = foo()嘗試打?。╣etattr(f,“ ref.ref.ref”))引發(fā)'foo'對(duì)象沒有屬性'ref.ref.ref'。因此,我通過以下功能解決了該問題:def get_ref(ref_attr):    for attr in ref_attr.split('.'):        print(getattr(f, attr))get_ref("ref.ref.ref") retruns the expected result:I'm foolishI'm foolishI'm foolish我想知道自己,這是另一種方法還是我可以使用的內(nèi)置方法。
查看完整描述

1 回答

?
aluckdog

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊

那并沒有按照您的想法做:每次都得到第一個(gè)要素。由于所有級(jí)別都稱為“參考”,因此它似乎只能工作。如果您將它們稱為“ foo.bar.baz”,它將失敗。您每次實(shí)際上需要使用上一次迭代中的元素:


def get_ref(ref_attr):

    item = f

    for attr in ref_attr.split('.'):

        item = getattr(item, attr)

        print item

但是,沒有內(nèi)置的方法可以做到這一點(diǎn)。


查看完整回答
反對(duì) 回復(fù) 2021-04-01
  • 1 回答
  • 0 關(guān)注
  • 179 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)