你好,我有个简单的任务,但我又卡住了:
如何将变量从类使用为描述符?
我有来自父类的commission变量,在调用set:self.amount = int(amount) * int(commission)时,我需要将它用作描述符
我该怎么做?
谢谢!
完整代码如下:
class Value():
def __init__(self):
return
def __get__(self, obj, obj_type):
return self.amount
def __set__(self, obj, amount, commission):
self.amount = int(amount) * int(commission)
class Account:
def __init__(self, commission):
self.commission = commission
amount = Value(self.commission)
new_account = Account(0.1)
new_account.amount = 100
print(new_account.amount)发布于 2018-03-11 13:34:16
正确的代码如下:
class Value():
def __init__(self):
return
def __get__(self, obj, obj_type):
return self.value
def __set__(self, obj, value):
self.value = value * (1 - obj.commission)
class Account:
amount = Value()
def __init__(self, commission):
self.commission = commission
new_account = Account(0.1)
new_account.amount = 100
print(new_account.amount)诀窍是,当您在描述符上调用__set__时,在里面传递obj,并且可以像往常一样调用任何变量或方法( obj.xxx ),这是基本的,但我确实是OOP的新手。
https://stackoverflow.com/questions/49208879
复制相似问题