dict.keys/values/items 是函数吗,为什么后面都要带()

问题遇到的现象和发生背景

dict.keys
dict.values
dict.items是函数吗
为什么后面都要带()

用代码块功能插入代码,请勿粘贴截图

dict是python的内置类,keys/values/items是类的方法——你如果喜欢称其为函数,大致也说的过去,但称其为类的方法,是通行的的说法。

d = {'x':1, 'y':2} # 创建类实例
d.keys() # 调用实例的keys方法
dict_keys(['x', 'y'])
dict.keys(d) # 直接调用类的keys方法,需要一个类实例做参数
dict_keys(['x', 'y'])
dict.keys() # 否则就会抛出异常
Traceback (most recent call last):
  File "/usr/lib/python3.10/idlelib/run.py", line 578, in runcode
    exec(code, self.locals)
  File "<pyshell#7>", line 1, in <module>
TypeError: unbound method dict.keys() needs an argument

此外,类还有静态方法等概念,有兴趣可以参考CSDN上的相关文章。