class Grid(QFrame):
def generate(self):
self.pen = False
self.tgDig = False
self.rwDig = False
我不确定这是如何运作的。
generate
方法定义为self
作为参数,我知道所有方法都必须有一个特殊的第一个参数,通常称为self
,但我不明白{ {1}}会调用self
或pen
或tgDig
,因为它们在其他任何地方都不存在?
如果有帮助的话,它正在使用PyQt QFrame。
答案 0 :(得分:0)
self
引用拥有方法generate
的对象,它看起来像pen
,tgDig
,而rwDig
也是同一个成员继承(等等)的类或其父类。
this可能有用。
答案 1 :(得分:0)
Python中类的所有方法都有第一个参数self
,它是对象本身的引用。与Java或C ++中的this
类似。因此,在您的示例中,三个变量是类的成员,您可以使用self
访问它。
在您的具体示例中,您没有在类中看到变量,因为它们是从另一个类(QFrame
)继承的。要从另一个类继承的类的语法是class MyClass(ParentClass)
答案 2 :(得分:0)
如果您运行示例,则会看到method resolution order和base
类Grid
继承其属性和方法。
import sys
app = QApplication(sys.argv)#
from PyQt4.QtGui import QFrame,QApplication
class Grid(QFrame):
def generate(self):
self.pen = False
self.tgDig = False
self.rwDig = False
import inspect
print inspect.getmro(Grid)
print(Grid.__bases__)