python - 通过类的名称访问类的属性与类方法有什么区别?
问题描述
在一次采访中,有人问我以下两种访问类属性的方法有什么区别:
class Klass:
x = 10
@staticmethod
def foo():
return Klass.x
@classmethod
def bar(cls):
return cls.x
classmethod
PS:我知道和之间的区别staticmethod
。
解决方案
Using cls would also work with inheritance,
class Klass2(Klass):
x = 5
print(Klass2().foo())
10
print(Klass2().bar())
5
Though there might be more differences
推荐阅读
- haskell - Graphics.Gloss.Interface.IO.Simulate包的更新功能中如何切换图片?
- visual-studio-code - VSCode 找不到存在的 Julia 可执行文件
- ios - 从“文件”应用程序长按复制复制目录时,Swift FileManger 不包含内容
- excel - 如何在excel中将N列表转换为两列表
- java - 如何在 Spring Boot 中使用 CRUD 链接三个表
- sql - 计算视图中的行数
- python - 无法在 linux(zorin os) 中正确设置 python 和 mysql
- java - Android GLIDE 4 - 如果那里已经有图像,则 ImageView 在加载时会闪烁
- c - C 编程语言问题中的函数:获取区域的程序
- wget - wget - 不要包括“?”之后的所有内容 命名保存文件时的符号