[英]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.