这里是一个比较新的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",但是却抛出了一个错误,指出“height”不是一个变量。我还有很多类似的问题,但本质上,我想知道是否有任何方法可以避免过多地使用“自我”这个词。谢谢!
发布于 2019-07-16 05:30:48
height和width是经典的变量,它们只存在于你的__init__方法中,为了解决这个问题,你必须使用self.height和self.width。self指向当前对象,这是将某些内容绑定到它的方法。
编辑:你应该读一些关于Python OOP的文章,里面有一些这种语言独有的东西。例如,一个Python类有一个构造器__new__和一个初始化器__init__。第一个实际上是一个构造函数,因为当你进入它的时候,实例还不存在,它的返回值主要是所需的实例。然后,Python自动调用由构造函数返回的对象的__init__方法,并在此构建实例属性。当然,您也可以直接从__new__绑定属性,但__init__就是为此而准备的。
发布于 2019-07-16 05:31:09
正如Shizzen83所说,self指的是类对象的实例。因此,要在整个类中使用的任何变量都需要以“self.‘”开头。
def __init__(self, heightInput, widthInput, pixelValue):
self.height = heightInput
self.width = widthInput
def readHeight:
print(self.height)这就是你要找的。
https://stackoverflow.com/questions/57047421
复制相似问题