【发布时间】:2018-03-08 09:54:15
【问题描述】:
我是一名刚接触 Python 的 Java 程序员。我无法理解来自 GitHub 中 pymodbus 存储库的以下代码的语法。函数定义在哪里?
self.execute(request)
我感到困惑的原因是 AFAIK self 指的是当前类的变量和函数,甚至是继承的。 ModBusClientMixIn 类中没有定义函数,该类也没有从任何其他类继承。那么它是从哪里来的呢?
在ReadCoilsRequest 类中定义了一个execute 函数,但是要调用它,为什么需要self?另外,上下文(执行函数参数列表中的变量)来自哪里?
如果有人能帮助我理解语法,我将不胜感激。
【问题讨论】:
-
你在问为什么要访问你需要的属性/方法
self.?你读过这个问题了吗:stackoverflow.com/questions/2709821/what-is-the-purpose-of-self 也有这个问题stackoverflow.com/questions/1984104/… -
@GiacomoAlzetta 是的,我确实阅读了关于 self 的问题 - 但我的问题是 self 指的是当前类或我所在的当前范围,并且在该范围内,没有定义执行函数。为什么不直接使用
obj.execute,反正我有对那个对象的引用。
标签: python design-patterns syntax mixins