Pycharm用于定制类行为的智能感知

2024-09-30 02:32:06 发布

您现在位置:Python中文网/ 问答频道 /正文

最近,我正在使用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?! enter image description here

(我尝试了不同的参数名,只有“node”会导致这种行为,其他人不会。这是否意味着pycharm可以根据名称的相似性推断类型?)你知道吗

非常感谢。你知道吗


Tags: 方法selfnonenode类型参数maindef
1条回答
网友
1楼 · 发布于 2024-09-30 02:32:06

是的。如果有一个变量和一个与该变量同名但大写的类,PyCharm会假定该变量可能是该类的实例,并在完成弹出窗口中建议该类的成员。你知道吗

(这只影响完成-例如,如果您访问未在此类中定义的成员,则不会显示警告。)

相关问题 更多 >

    热门问题