最近,我正在使用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会假定该变量可能是该类的实例,并在完成弹出窗口中建议该类的成员。你知道吗
(这只影响完成-例如,如果您访问未在此类中定义的成员,则不会显示警告。)
相关问题 更多 >
编程相关推荐