Python 元编程-SIMD计算的更改表示法

Python 元编程-SIMD计算的更改表示法,python,metaprogramming,Python,Metaprogramming,在并行/SIMD工作中,我经常在函数f中用下面的语法表示计算。但是,它有点容易出错,我想用g中定义的语法编写它。有什么方法可以从f到g中的语法中获取信息吗 dta=[[0,0,0,0],[0,0,0,0]] VAR_ONE, VAR_TWO = range(2) def f(ln): dta[VAR_ONE][ln] = dta[VAR_ONE][ln] + 1 def g(): VAR_ONE = VAR_ONE + 1 for ln in range(4):

在并行/SIMD工作中,我经常在函数
f
中用下面的语法表示计算。但是,它有点容易出错,我想用
g
中定义的语法编写它。有什么方法可以从
f
g
中的语法中获取信息吗

dta=[[0,0,0,0],[0,0,0,0]]

VAR_ONE, VAR_TWO = range(2)

def f(ln): 
    dta[VAR_ONE][ln] = dta[VAR_ONE][ln] + 1

def g():
    VAR_ONE = VAR_ONE + 1


for ln in range(4):
    f(ln) 

我不知道你在找什么,但我猜。你可以创建一个类,它的属性允许你想要的东西(我想)

我的意思是:

class Class:
    _VAR_ONE, _VAR_TWO = range(2)

    def __init__(self, dta, ln):
        self.dta = dta
        self.ln = ln

    def _getter(self):
        return self.dta[self._VAR_ONE][self.ln]

    def _setter(self, value):
        self.dta[self._VAR_ONE][self.ln] = value

    VAR_ONE = property(_getter, _setter)

    def g(self):
        self.VAR_ONE = self.VAR_ONE + 1


dta = [[0,0,0,0], [0,0,0,0]]

for ln in range(4):
    inst = Class(dta, ln)
    inst.g()

print(dta)  # -> [[1, 1, 1, 1], [0, 0, 0, 0]]