首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python3.Descriptor.Class

Python3.Descriptor.Class
EN

Stack Overflow用户
提问于 2018-03-10 12:07:52
回答 1查看 50关注 0票数 0

你好,我有个简单的任务,但我又卡住了:

如何将变量从类使用为描述符?

我有来自父类的commission变量,在调用setself.amount = int(amount) * int(commission)时,我需要将它用作描述符

我该怎么做?

谢谢!

完整代码如下:

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-11 13:34:16

正确的代码如下:

代码语言:javascript
复制
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的新手。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49208879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档