与任何类共享相同的属性。

class-propert的Python项目详细描述


安装

pip install class_property

公用事业

  • class_value - Hold a single value for a class and all instances.
  • class_property - Like a property, but works on MyClass.class_prop = value
  • metaclass - Create a metaclass that looks for class_value and class_property to register them.
  • decorate - Decorate a class to register any class_value and class_property.

类必须使用元类或装饰函数。子类不需要使用decorate或元类。 元类是类对象如何与描述符一起工作的。在

类值用法。在

示例:

^{pr2}$

类属性用法。在

示例:

fromclass_propertyimportclass_value,class_property,decorate,metaclassglobalGLOBGLOB='Hello'defget_glob():"""Return the global GLOB value"""globalGLOBreturnGLOBdefset_glob(value):globalGLOBGLOB=value# doesn't matter if class_value.decorate, class_property.decorate, or decorate (same with metaclass)classMyClass(object,metaclass=metaclass()):_VALUE=None@class_propertydefvalue(self):returnMyClass._VALUE@value.setterdefvalue(self,value):MyClass._VALUE=value# Also works with no arguments@class_propertydefvalue2():returnMyClass._VALUE@value2.setterdefvalue2(value):MyClass._VALUE=valueglob=class_property(get_glob,set_glob)mc=MyClass()assertmc.valueisNoneassertMyClass.valueisNoneMyClass.value=3assertmc.value==3assertMyClass.value==3mc.value=2assertmc.value==2assertMyClass.value==2assertmc.value2==2assertMyClass.value2==2mc.value2=5assertmc.value==5assertMyClass.value==5assertmc.value2==5assertMyClass.value2==5assertMyClass.glob=='Hello'assertmc.glob=='Hello'MyClass.glob='Jack'assertMyClass.glob=='Jack'assertmc.glob=='Jack'mc.glob='Jill'assertMyClass.glob=='Jill'assertmc.glob=='Jill'classSubClass(MyClass):passsub=SubClass()sub.glob='John'assertSubClass.glob=='John'assertsub.glob=='John'assertMyClass.glob=='John'assertmc.glob=='John'

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
构造函数的java条件调用   类Dog中的java构造函数Dog不能应用于给定类型   java jsch和运行“sudo su”   java将队列和堆栈相互复制   java如何在netbeans项目的文件夹中添加库   java While循环在我的代码中不存在   如何在XML中使用java方法的返回值   java是否可以在不写入文件的情况下将字符串/字节数组作为文件发布?   java为什么这些字符串不相等?   sockets客户机-服务器java编程,用户可选择   java如何在SpringMVC和hibernate中保存模型返回视图的列表   java如何修复组织。openqa。硒。WebDriverException:未知错误   Java,Ant错误:编码Cp1252的不可映射字符   JAVAlang.ClassCastException:[Ljava.lang.String;与java.lang.String不兼容   java如何使用JDK8(可选)为空字段创建自定义IntelliJ getter模板   java Tomcat6响应。sendRedirect()404错误