我希望在python中直接访问C语言的全局变量,直接通个python修改或者读取变量,而不通过方法,有什么办法可以实现吗?
听说可以通过__getattr__,__setattr__来实现,但是具体怎么使用,有相关的参考或者说明吗?非常感谢!
离线
@lyon1998
你这个操作只是操作变量,如果我要操作的是数组呢?要怎么操作,可以直接用list类型吗?
离线
li460135301 说:@lyon1998
你这个操作只是操作变量,如果我要操作的是数组呢?要怎么操作,可以直接用list类型吗?可以用一个对象的 __gitiem__ 和 __setitem__ 来做绑定
按照你说的,是这样操作吗?我好像操作了数组是无法绑定的!还是没有理解。谢谢!
···
# test.py
import _test
class DataBinding:
def __setattr__(self, name, val):
_test._set(name, val)
def __getitem__(self, name, key):
return _test._getitem(name, key)
def __setitem__(self, name, key, val):
print('name:', name)
print('key:', key)
print('val:', val)
_test._setitem(name, key, val)
def IN(self, addr: int) -> int:
return _test._in(addr)
···
···
# _test.pyi
def _get(self, name: str) -> int: ...
def _set(self, name: str, val: int): ...
def _getitem(self, name: str, key: int) -> int: ...
def _setitem(self, name: str, key: int, val: int): ...
···
离线
@lyon1998
好的,非常感谢,已经测试通过.
离线