python中的属性引用可以与Java中的静态类进行比较吗?
我假设属性引用类似于Java中的静态类
例如:我已经声明了一个类
>>> class Square:
def __init__(self):
self.side=0
def area(self):
print(self.side*self.side)
那么这句话就行了:
>>> Square.side=2
但是在访问“区域”方法时获取错误
>>> Square.area()
有人能解释一下python中的属性引用是如何工作的吗? 澄清我的假设是否正确
# 1 楼答案
要访问area方法,需要按实例方法创建方形对象
有关类、实例方法和类方法的更多信息,请参阅
https://docs.python.org/3/tutorial/classes.html
# 2 楼答案
可以在python中使用静态方法,但不能这样。还要考虑语义,而不仅仅是粗略的语法
Square
是对每一个可能的正方形的描述。说square.size = 3
有意义吗?可能不会,因为我们将主体限制在3个单位大小的正方形,而不是每个正方形这同样适用于
area
。你不想要“正方形”的面积。您需要一个特定正方形的面积,或者如python中所称的instance
。因此,通过将Square
的一个实例分配给一个变量,并使用该变量计算面积,您的程序将获得更多: