python(2.7):使用类d访问类属性

2024-10-02 20:37:15 发布

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

我试图访问一个类的实例(称为“a”),该实例被传递给第二个类(称为“b”)。我的意图是通过修饰实例b的类来访问实例a,这样我就可以在实例a上设置一些后台线程任务,同时仍然使用实例b来执行其他更重要的任务。这可能吗?你知道吗

import threading    
import inspect

Class doStuff():
    def __init__(self, somePropertyFromAnotherClass):
        self.lock = threading.Lock()
        self.prop = somePropertyFromAnotherClass

    def doCoolThreadingStuff():
        print("do threading stuff with {}".format(self.prop))


def someDecorator(cls):
    def wrapper(cls):
        print(inspect.getrgspec(cls.__init__))
        #ds = doStuff()  ## this is the bit that i can't figure out!
    wrapper(cls)
    return cls


Class A():
    def __init__(self):
        self.obj = "i'm an object" 


@someDecorator
Class B():
    def __init__(self, obj):
        self.obj = obj

    def doSomethingWithObj():
        print('doing something with obj')


if __name__ == "__main__":
    a = A()
    b = B(a)

Tags: 实例importselfobjinitdefwithclass
1条回答
网友
1楼 · 发布于 2024-10-02 20:37:15

这个装潢师体格不好

def someDecorator(cls_obj):
    def wrapper(*args):
        ds = doStuff(args[0]) # positional : / 
        ds.doCoolThreadingStuff() 
        return cls_obj(*args)
    return wrapper

我能够使用上面的decorator定义访问类a的实例(传递给类B)

相关问题 更多 >