您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python属性未设置

5b51 2022/1/14 8:23:12 python 字数 2116 阅读 561 来源 www.jb51.cc/python

这是代码: def Property(func): return property(**func()) class A: def __init__(self, name): self._name = name @Property def name(): doc = 'A''s name' de

概述

def Property(func):
     return property(**func())

class A:
     def __init__(self,name):
          self._name = name

     @Property
     def name():
          doc = 'A''s name'

          def fget(self):
               return self._name

          def fset(self,val):
               self._name = val

          fdel = None

          print locals()
          return locals()

a = A('John')
print a.name
print a._name
a.name = 'Bob'
print a.name
print a._name

以上产生以下输出

{'doc': 'As name','fset': <function fset at 0x10b68e578>,'fdel': None,'fget': <function fget at 0x10b68ec08>}
John
John
Bob
John

代码from here.

问题:怎么了?它应该是简单的东西,但我找不到它.

注意:我需要属性来进行复杂的获取/设置,而不是简单地隐藏属性.

提前致谢.

Return a property attribute for new-style classes (classes that derive from object).

您的类不是新样式的类(您没有从对象继承).将类声明更改为:

class A(object):
    ...

它应该按预期工作.

总结

以上是编程之家为你收集整理的Python属性未设置全部内容,希望文章能够帮你解决Python属性未设置所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶