【发布时间】:2019-07-15 21:28:28
【问题描述】:
这里是相对较新的 Python 程序员。所以我试图创建一个变量,该变量可以通过在构造函数中初始化的类中的任何方法访问和更改。到目前为止,我无法弄清楚如何做到这一点。
作为解决问题的“创可贴”,我在课堂上的每个变量之前都使用了“self”。当然,还有另一种方法。
例如:
class Image:
height, width = 0,0
def __init__(self, heightInput, widthInput, pixelValue):
height = heightInput
width = widthInput
def readHeight:
print(height)
testObj = Image(10, 10, 20)
testObj.readHeight()
我希望输出为“10”,但会抛出“高度”不是变量的错误。我还有很多类似的问题,但本质上我想知道是否有任何方法可以避免使用“自我”这个词。谢谢!
【问题讨论】:
-
“作为解决问题的“创可贴”,我在课堂上的每个变量之前都使用了“self”。当然,还有另一种方法。”不,没有。你必须使用
self -
self不是创可贴的解决方案。从字面上看,这是区分类属性和同名全局变量的唯一方法 -
您刚刚将
height、width局部变量设置为__init__方法。您应该阅读 OOP 的工作原理。 -
是的,我明白了。 “区分类属性和具有相同名称的全局变量的唯一方法”我的问题是,我应该有一个唯一的全局变量(在方法外部声明),如何从方法内部访问它?例如,我将如何访问宽度和高度的类变量?那是我的问题。
-
@GreyAycock 是的,你已经有了答案,你使用
self.my_var
标签: python python-3.x variables self