为 Python 的 class 增加 classproperty

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 。

作用

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

    原文作者:远飞的大雁2010
    原文地址: https://www.jianshu.com/p/f2ba4d4b8571
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞