我最近开始学习Python,在这里得到了这段代码:
import math
class Circle:
def __init__(self, radius):
self.radius = radius
def area(self):
return math.pi * self.radius ** 2
@staticmethod
def convert_area_in_radius(area):
return math.sqrt(area/math.pi)
c2 = Circle(Circle.convert_area_in_radius(80))
print(c2.radius)
如果我运行控制台,返回值为 5.04..
这对我来说很有意义,因为调用 def
convert_area_in_radius
。
但是Python从哪里知道它被分配给了radius
方法的属性init
呢?我的意思是我正在打电话
print(c2.radius)
有关于此属性的已知参考
radius
我希望得到相同的回报,但打电话却没有
print(c2.radius)
您正在嵌套表达式。这是一个“嵌套”版本
# using a "function" associated to the class
r = Circle.convert_area_in_radius(80)
# creating the instance
c2 = Circle(r)
# access to the attribute of the object
print(c2.radius)