[英]Pycharm Intellisense for custom class surprising behavior
最近,我正在使用pycharm实现一些简单的算法。 但是我发现了一个相当令人惊讶的事实。
这是我的代码
def main():
n = Node(2)
n.nextNode=Node(1)
def TraverseNodes(node):
if node.nextNode = None
print(node.num)
else:
print(node.num)
TraverseNodes(node.nextNode)
class Node():
nextNode = None
num = None
def __init__(self,num):
self.num = num
def appendNext(self,next):
self.nextNode=next
main()
据我所知,python是一种动态类型语言,这意味着类型是在运行时解释的。
因此,pycharm不应该知道TrasverseNode方法中的“ node”参数属于哪种类型。
但是当我实际写出方法的细节时,intellisense似乎能够推断出类型是node?!。
(我尝试使用不同的参数名称,只有“ node”可能导致此行为,其他参数则无法。这是否意味着pycharm可以通过名称的相似性来推断类型?)
非常感谢你。
是。 如果您有一个变量和一个与变量名称相同但大写的类,则PyCharm会假定该变量可能是该类的实例,并在完成弹出窗口中建议该类的成员。
(这只会影响完成-例如,如果您访问未在此类中定义的成员,它将不会显示警告。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.