簡體   English   中英

python __getattr__自動完成

[英]python __getattr__ autocompletion

__getattr__可用於定義對象的屬性。 例如,以下代碼將返回'bar'

class Test(object):
    def __getattr__(self, key):
        if key == 'foo':
            return 'bar'
t = Test()
t.foo

為了讓生活更輕松,我希望能夠輸入t. 在ipython中然后tab-complete屬性名稱。 我似乎無法找到如何做到這一點,雖然它似乎是可能的。 例如,在ipython中運行以下代碼

import pandas
df = pandas.DataFrame(data={'foo': ('bar',)})

打字df. 和制表符允許選擇foo選項。 我無法在其代碼中找到熊貓是如何做到的,所以我在這里問。 我應該在Test類中添加什么才能使tab-completion能夠正常工作?

您可以使用__dir__方法實現此__dir__ 下面是包含DataFrame的類的示例

def __dir__(self):
    return self.df.keys()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM