我如何访问作为参数传递给Python中另一类的类的类方法



我想创建一个类(例如,锁定tributes)以访问(读取/写入)某些属性通过多个线程安全。我想传递我想要共享的属性到锁定基金会。某些列表元素本身是具有自己的设置器和Getter的类对象。如何从锁定类别的OBJ访问这些固定器/getter?我对getAttr()setAttr()的使用可能是错误的。示例代码:

class Coord:
def __init__(self, x=0.0, y=0.0, z=0.0):
    self.x = x
    self.y = y
    self.z = z
def set_coordinator(self, x, y, z):
    self.x = x
    self.y = y
    self.z = z
def get_coordinator(self):
    return self.x, self.y, self.z
class LockedAttributes(object):
def __init__(self, obj):
    self.__obj = obj
    self.__lock = RLock()
def getmyPosition(self):
    with self.__lock:
        return self.__obj[0]
def getmySpeed(self):
    with self.__lock:
        return self.__obj[1]
def getcolPosition(self):
    with self.__lock:
        return self.__obj[2]
def getDistfromCol(self):
    with self.__lock:
        getattr(self, self.__obj[3]) 
def setDistfromCol(self, value):
    with self.__lock:
        setattr(self, self.__obj[3], value) 
def getcolactivationFlag(self):
    with self.__lock:
        getattr(self, self.__obj[4])
def setcolactivationFlag(self, value):
    with self.__lock:
        setattr(self, self.__obj[3], value)

class OBU():
def __init__(self):     
   pos = Coord()
  speed = Coord()
  colpos = Coord()
  distance_from_accident = 0.0
  Flag = False
  self.shared_attributes = LockedAttributes([ pos, speed, colpos, distance_from_accident, Flag])
  mypos= self.shared_attributes.getmyPosition()
  mypos.get_coordinator() # Not workinh

LockedAttributes类的__init__方法应进行参数,以便您实际上可以将列表对象传递给它。

更改:

class LockedAttributes(object):
    def __init__(self):
        self.__obj = object
        self.__lock = RLock()

to:

class LockedAttributes(object):
    def __init__(self, obj):
        self.__obj = obj
        self.__lock = RLock()

最新更新