“bafangpython”包中使用的Python“Magic”方法是什么?

2024-09-29 17:47:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在努力让这段代码发挥作用:

https://github.com/philippsandhaus/bafang-python

有一种Magic()方法,它让我很困惑,因为Python也有一些神奇的方法。我也是Python的初学者。在

问题在于这一部分:

connect_cmd = Struct('connect',
  Magic('\x11\x51\x04\xB0\x05')
)

这是一个串行消息,但是Magic()是什么?我如何才能使它工作?在


Tags: 方法代码httpsgithubcmdcomconnectmagic
3条回答

我是github回购协议的原作者。我将代码更新为当前的Construct版本2.9,添加了requirements.txt,还删除了import *的内容。所以现在事情应该更清楚了,它应该对你有用。在

^{1}$

现在是changed

^{pr2}$

python中的“Magic”方法是提供操作符重载的方法。在python语言中,术语“magic”并没有出现在这些方法中,而且许多用户不喜欢使用这个术语,因为它暗示了不可理解性。如有需要,请参阅this tutorial获取有关这些内容的更多信息。在

链接中引用的Magic函数(或可能的类)没有在该repo上下文中定义,因此无法说明它对所提供的信息做了什么。对提交者的其他存储库进行更多的研究可能会发现他从中导入的construct模块。在

编辑:显然有一个名为construct的库,python的一部分用户都知道它,但是您引用的作者并没有明确引用它。叹息。https://github.com/MostAwesomeDude/construct

construct.Magicconstruct.Const的旧名称。(这段代码大概是为construct库2.8之前的版本编写的)。在

请参见https://github.com/construct/construct/blob/master/docs/transition28.rst,描述了一系列的重命名:

Magic was made Const


可以从the documentation推断出名称的原因(添加了强调):

Const - A constant value that is required to exist in the data and match a given value. If the value is not matching, ConstError is raised. Useful for so called magic numbers, signatures, asserting correct protocol version, etc.

相关问题 更多 >

    热门问题