请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

属性描述符只能不能赋值给__init__里面的属性吗?

属性描述符只能不能赋值给__init__里面的属性吗?只能赋值给类属性?

正在回答 回答被采纳积分+3

1回答

bobby 2018-08-24 18:23:56

属性描述符  是赋值给类的, 是用来定义结构的, 也可以赋值给实例 但是只能针对当前实例 如果你在init中初始的时候给每个实例都赋值了这个 那为什么不直接在类中定义呢

0 回复 有任何疑惑可以回复我~
  • 提问者 Jazz_Qi #1
    class 属性描述符1:
        def __get__():
        def __set__():
    
    class A:
        属性1 = 属性描述符1()
    
    a1 = A()
    a2 = A()
    
    a1.属性1 = 15
    a2.属性1 = 20
    
    print(a1.属性1)
    print(a2.属性1)
    
    结果是一样的,a1和a2用的属性描述符是同一个对象,所以我才有了这个疑问,意味着需要用不同的属性描述符1的实例化对象只能用创建一个新的class B。
    
    我就是很好奇,能不能即便a1和a2都是A类的实例化对象,能不能用不同的属性描述符1的实例化对象,所以有了这个疑问。
    回复 有任何疑惑可以回复我~ 2018-08-25 18:00:39
  • 提问者 Jazz_Qi #2
    前面问题提交后格式出了问题,我这里简单重新写一遍。
    疑问:能不能同一个class实例化不同的object的属性使用不同的属性描述符的object对象。
    属性描述符是不是只能够在类属性中使用才可以使用?
    这个疑问是因为我尝试以下两种情况都有问题:
    1、由于属性描述符是类属性,所以同一个类实例化两个对象,使用同一个属性描述符的实例化对象
    2、在__init__中的self.属性赋值为属性描述符实例化对象,无效
    回复 有任何疑惑可以回复我~ 2018-08-25 18:13:27
  • bobby 回复 提问者 Jazz_Qi #3
    属性描述符的类和实例上的问题 你可以看看这个https://stackoverflow.com/questions/12599972/descriptors-as-instance-attributes-in-python
    回复 有任何疑惑可以回复我~ 2018-09-04 17:27:45
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信