Python - 类对象属性设置器不起作用

Jok*_*ini 2 python

我在这里有一个简单的类设置。我想要发生的是当我设置类对象Truck的属性“信息”时要打印的“打印消息” 。

当我设置 info 属性时似乎没有发生任何事情我c.info = "Great" 希望它打印“正在设置”

# Classes
class Node(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age

class Truck(Node):
    def __init__(self, name="", age=0):
        super(Truck, self).__init__(name=name, age=age)
        self.info = None

        @property
        def info(self):
            return self.info

        @info.setter
        def info(self):
            print "this is being set"


c = Truck()
c.info = "great"
print c.info
Run Code Online (Sandbox Code Playgroud)

Mik*_*ler 5

setter需要采取一个value。此外,将数据存储在其中self._info以避免递归调用self.info().

class Node(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age

class Truck(Node):
    def __init__(self, name="", age=0):
        super(Truck, self).__init__(name=name, age=age)
        self._info = None

    @property
    def info(self):
        return self._info

    @info.setter
    def info(self, value):
        # you likely want to it here
        self._info = value
        print("this is being set")


c = Truck()
c.info = "great"
print(c.info)
Run Code Online (Sandbox Code Playgroud)

这打印:

this is being set
great
Run Code Online (Sandbox Code Playgroud)