Oct*_*our 5 python attributes autocomplete tab-completion
__getattr__可用于定义对象的属性。例如,以下代码将返回'bar'。
class Test(object):
    def __getattr__(self, key):
        if key == 'foo':
            return 'bar'
t = Test()
t.foo
Run Code Online (Sandbox Code Playgroud)
为了使生活更轻松一点,我希望能够输入t.ipython,然后使用制表符完成属性名称。尽管似乎可行,但我似乎无法找到解决方法。例如在ipython中运行以下代码
import pandas
df = pandas.DataFrame(data={'foo': ('bar',)})
Run Code Online (Sandbox Code Playgroud)
键入df.和制表符补全允许选择foo选项。我在代码中找不到熊猫是怎么做到的,所以我在这里问。我应该在Test课堂上添加些什么,以便制表符补全起作用?
您可以使用__dir__方法来实现这一点。下面是一个包含 DataFrame 的类的示例
def __dir__(self):
    return self.df.keys()
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           520 次  |  
        
|   最近记录:  |