为什么dict.keys不能迭代?

juk*_*mil 1 python

node_name是一个字符串.这不应该返回node_list字典中的键列表,可以迭代吗?为什么错误说它不可迭代?

class Graph:

def __init__(self):
    self.node_list = {}
    self.number = 0

def node(self, node_name):
    if node_name in self.node_list.keys: 
    ...

File "PythonProject2.3.py", line 10, in node
    if node_name in self.node_list.keys: #returns list of keys
TypeError: argument of type 'builtin_function_or_method' is not iterable
Run Code Online (Sandbox Code Playgroud)

mip*_*adi 10

.keys是一种功能,而不是财产.试试这个:

if node_name in self.node_list.keys():
Run Code Online (Sandbox Code Playgroud)

默认情况下,字典会对其键进行迭代,因此这也会起作用:

if node_name in self.node_list:
Run Code Online (Sandbox Code Playgroud)