我想看看 PyQt5.QtWidgets 的源代码,但最终看到了下面的代码:class QPushButton(QAbstractButton): """ QPushButton(parent: QWidget = None) QPushButton(str, parent: QWidget = None) QPushButton(QIcon, str, parent: QWidget = None) """ def actionEvent(self, *args, **kwargs): # real signature unknown pass def autoDefault(self): # real signature unknown; restored from __doc__ """ autoDefault(self) -> bool """ return False def changeEvent(self, *args, **kwargs): # real signature unknown pass只有一些注释和方法只有“通过”和“返回”,有人能解释一下它们是如何工作的吗?其他代码在哪里?
1 回答

动漫人物
TA贡献1815条经验 获得超10个赞
简单地说,像这样的抽象类被另一个类扩展,然后另一个类将实现这些空方法。这就像软件中的一个界面。Python 遵循Duck-typing 的原则,这意味着某些对象应该实现具有特定名称、参数和返回类型(方法签名)以及特定属性的方法。所以,这个抽象类有助于维护这些原则。
模块可能希望您扩展此类,填充方法,然后模块中的另一个对象或函数稍后使用可以调用自定义按钮对象上的这三个特定方法中的一个或多个。这是鸭子打字。
编辑:如果它是一个抽象基类,这将是正确的,但它只是一个由 PyCharm 自动生成的嘈杂的类存根。
添加回答
举报
0/150
提交
取消