Python3.Descriptor.Class
Python3.Descriptor.Class
你好,我有一个简单的任务,但我又卡住了:
如何将 class 中的变量用于描述符?
我有来自父 class 的 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)
正确代码如下:
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,我知道这是基本的但我真的是菜鸟面向对象。
你好,我有一个简单的任务,但我又卡住了:
如何将 class 中的变量用于描述符?
我有来自父 class 的 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)
正确代码如下:
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,我知道这是基本的但我真的是菜鸟面向对象。