如何访问类构造函数中的变量值?
代码是
class Rectangle:
count = 0
def __init__(self,width, height):
self.width = width
self.height = height
bla = 10
Rectangle.count += 1
default_area = 20
def calcArea(self):
area = self.width * self.height
return area
def getcount(self):
print(self.count)
我想修改default_area
;我怎么能这样做?
答案 0 :(得分:0)
您可以通过以下方式将您的变量与类相关联:
self.default_area = 20
。然后,您可以self.default_area
访问它。变量bla
,default_area
在类构造函数的本地函数范围中定义,并且由于它们不再具有引用而被垃圾收集。当变量没有引用时,无法访问它。 CalcArea中的变量区域和结果可以直接返回。
#!/usr/bin/env python
class Rectangle:
def __init__(self, width, height):
self.Width = width
self.Height = height
self.default_area = self.CalcArea()
def CalcArea(self):
return self.Width * self.Height
def GetInfo(self):
print("X:", self.Width)
print("Y:", self.Height)
print("Area:", self.default_area)
rect1 = Rectangle(10, 20)
rect1.GetInfo()
答案 1 :(得分:0)
如果您希望所有实例共享相同的default_area
,请将其提升为类属性:
class Rectangle:
count = 0
default_area = 20
# Modify
Rectangle.default_area = 30
如果您希望每个实例都有自己的实例,请将其设为类属性(如之前的帖子所述):
def __init__(self,width, height):
self.width = width
self.height = height
self.default_area = 20
# Modify
rect1.default_area = 30
如果您希望这是一个真正的默认值,请在构造函数中进行:
def __init__(self,width, height, area=20):
self.width = width
self.height = height
self.area = area
# Modify
rect1.area = 30