如何使用属性格式化 类 中的字符串?

How to format strings in classes using attributes?

我想用 class 的另一个属性格式化 class 的属性字符串,如下所示:

class Test:
    def __init__(self):
        self.name = None
        self.full_name = 'name, {}'.format(self.name)

    def print_name(self):
        print(self.full_name)

my_object = Test()
my_object.name = 'my_object'

my_object.print_name()

现在应该打印 'name, my_object' 但它打印 'name, None'

如何将字符串格式化为对象的赋值?

您需要将 full_name 添加为 property 以便您可以向其中添加更多逻辑:

class Test:
    def __init__(self):
        self.name = None

    @property
    def full_name(self):
        return f'name, {self.name}'

    def print_name(self):
        print(self.full_name)


my_object = Test()
my_object.name = 'my_object'

my_object.print_name()

资源: