pycharm 函数参数,不自动提示该参数的方法和属性

首先声明,自动补全已经打开,其他基本形式的自动补全是可以的。

A对象有dosomething()方法

def foo(a):
    a.dosomething()
    
def foo2():
    a = A()
    foo(a)

在方法 foo 输入 a. 之后不会自动提示补全。是因为Python函数没有参数类型的声明,所以无法识别参数类型?
有什么办法可以变相解决吗?

阅读 22.1k
2 个回答

按道理你这种情况是会自动补全的。
你也可以这样,添加:cls

class Aaaa:
    def dosomething(self):pass

def foo2(a:Aaaa):
    a.dosomething()

参数注释只能用于参数类型限定为一种的情况, 如果这个参数准备接受不同类型, 那么参数注释也起不到帮助补全代码的作用.

实际上, 代码补全根本不需要额外的操作, python中可直接对类调用方法并把这个参数作为实例传入, 这样就不愁代码补全了.

>>> class A:
    def afunc(me):
        print('via A')

        
>>> def f(arg):
    #例如: 如果把arg当做A类型, 那就这样写. 这样即使arg有多种类型的可能也能实现代码补全
    A.afunc(arg)

    
>>> f(A())
via A
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题