找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2153|回复: 2

[求助] 求各位大神帮帮小弟看看这段代码有什么问题

3

主题

4

帖子

4

积分

贫民

积分
4
疯子.py 发表于 2020-4-9 18:58:48 | 显示全部楼层 |阅读模式
这是一个关于类的描述符的问题:
class Celsius:
        def __init__(self, value = 26.0):
            self.value = float(value)

        def __get__(self,instance,owner):
            return self.value

        def __set__(self,instance,value):
            self.value = float(value)

            
class Fahrenheit:
        def __get__(self,instance,owner):
            return (owner.cel * 1.8 + 32)

        def __set__(self,instance,value):
            instance.cel = ((float(value) - 32) / 1.8)

class Temperature():
        cel = Celsius()
        fah = Fahrenheit()

为什么运行的时候输入:a.cel = 30
可以算出a.fah = 86
而输入:a.fah = 无论什么值
结果都是30(或初始值26)
回复

使用道具 举报

0

主题

10

帖子

10

积分

贫民

积分
10
rrrr336 发表于 2020-4-11 03:42:52 | 显示全部楼层
class Fahrenheit 忘了写 构造函数 __init__
copy 一下Celsius 的 __init__   就可以了
回复 支持 反对

使用道具 举报

3

主题

4

帖子

4

积分

贫民

积分
4
疯子.py  楼主| 发表于 2020-4-14 22:30:42 | 显示全部楼层
rrrr336 发表于 2020-4-11 03:42
class Fahrenheit 忘了写 构造函数 __init__
copy 一下Celsius 的 __init__   就可以了

可以了!我试过了,感谢感谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表