我是一个Java程序员,对Python还很陌生。我在理解GitHub中pymodbusrepo的以下代码的语法时遇到了问题。函数定义在哪里?你知道吗
self.execute(request)
我感到困惑的原因是AFAIKself
引用了当前类的变量和函数,甚至是继承的变量和函数。在ModBusClientMixIn类中没有定义函数,也没有从任何其他类继承的类。那么它是从哪里来的呢?你知道吗
在ReadCoilsRequest类中定义了一个execute
函数,但是要调用它,为什么需要self
?另外,context(execute function参数列表中的变量)来自哪里?你知道吗
如果有人能帮我理解语法,我将不胜感激。你知道吗
它是一个mixin,用于定义
execute
方法的类,例如:mixin将方法添加到其他类中,不应该自己使用。你知道吗
如果您想正确地键入annotate,则必须如下所示:
由于Python严重依赖于duck类型,而类型注释是一个相对较新的添加项,因此它们经常被省略,并被冗长的文档所取代,或者期望开发人员认识到mixin的用途,或者它是一个内部实现细节,以至于它没有被显式地文档化。你知道吗
这是个特例。你是对的,
execute
必须在某个地方定义。你知道吗但是在这种情况下,
execute
是由一个从ModBusClientMixIn
派生的子类实现的。你知道吗如果直接创建
ModBusClientMixIn
的实例,则会出现错误,因为它没有实现execute
。你知道吗看看
ModbusClientProtocol
或BaseModbusClient
的实现,例如,它们都有一个execute
方法。你知道吗相关问题 更多 >
编程相关推荐