想要创建一个方法setRate来调整影响所有零售客户的统一折扣率吗

2024-05-17 19:37:19 发布

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

要使用SetRate更改rod=0.1的值,以便在整个类中进行更改吗

class RetailCustomer:

    def __init__(self, price, rod=0.1):
        self.price = price
        self.rod = rod

        def getRate(self):
        return self.rod

    def setRate(self, rate):
        self.rod = rate
        print("After changing Rate: ", self.rod)
        return self.rod

RetailCustomer(int(input('Discount Rate: '))).setRate(10)

#还尝试使用此“RetailCustomer.setRate(10)”,但它抛出了“TypeError:setRate()缺少1个必需的位置参数:'rate'”此错误,如“(int(input('Discount rate:')))”。我认为不需要这一行


Tags: selfinputreturnrateinitdefdiscountprice
1条回答
网友
1楼 · 发布于 2024-05-17 19:37:19

静态方法无法访问实例self。不要对setter方法使用@staticmethod,对不需要访问类属性的实用程序函数使用@staticmethod。如果您想拥有获取或设置属性的方法,则不需要调用__init__,它是对象的构造函数。相反,您可以只返回值或按如下方式设置值:

# Methods in your class
def getRate(self):
    return self.rod
def setRate(self, rate):
    self.rod = rate

# Outside the class
obj = Myobject(price=5)
obj.setRate(10)


>>> obj.getRate()
>>> 10

相关问题 更多 >