python 类在另一个类中示例化并需要第二个类的对象

pn9klfpd  于 2023-09-29  发布在  Python
关注(0)|答案(1)|浏览(85)

我用字符串my_string和另一个类Class1的示例初始化类Class2。这个Class1使用一个方法method进行初始化,该方法需要my_string
我写了我觉得最简单的,但我有一种感觉,这不是最好的选择。有比以下MWE更好的做法吗?

**编辑:**根据jonrsharpe的评论,我建议第二个MWE。
**编辑2:**下面描述的类是极简主义的。我的代码中的类包含几个作用于类中对象的方法。
MWE 1

class Class1():
    def __init__(self,object_class):
        self.method(object_class)
        
    def method(self,object_class):
        print(object_class.my_string)
        
        
class Class2():
    def __init__(self):
        self.my_string="abc"
        self.my_class=Class1(self)
        
        
test=Class2()

  • 酒店MWE 2**
class Class1():
    def __init__(self,some_string):
        self.method(some_string)
        
    def method(self,some_string):
        print(some_string)
        
        
class Class2():
    def __init__(self):
        self.my_string="abc"
        self.my_class=Class1(self.my_string)
        
        
test=Class2()
cyej8jka

cyej8jka1#

为什么不利用继承呢?也许这不适合你的用例,我不知道(在答案上下文未知的时候),但是对于上面的例子,我会这样做来解耦示例依赖:

class ParentClass:
    def __init__(self):
        self.my_string = "abc"

class ChildClass(ParentClass):
    def __init__(self):
        super().__init__()

    def method(self):
        print(self.my_string)

test = ChildClass()
test.method()

相关问题