Python爱好者我的Python自学之路Python 运维

为 Python 的 class 增加 classpropert

2017-02-24  本文已影响56人  远飞的大雁2010

Python 有一个 property 的属性,非常好用。但它只针对对象,无法获取类的属性。我们可以利用 Python 的描述器来编写一个 classproperty 来获取类的属性。

不过这个属性是只读的,只能用来读取,不能写入数据。

代码示例

class classproperty:
    def __init__(self,method):
        self.method=method
 
    def __get__(self,instance,owner):
        return self.method(owner)
 
 
class Billow:
    @classproperty
    def lname(cls):
        return cls.__name__.lower()
 
 
print(Billow.lname)

在上面的例子中,我们为 Billow类添加了一个 lname 的属性,可以将其类名转化为小写。例如本例打印出来的值为 billow 。

作用

我们在写数据库模型的时候,可以使用设置这样的属性,可以用来获取数据库的连接、对应的表名等内容。

上一篇 下一篇

猜你喜欢

热点阅读