• python中的@property


    @property在python中是一个装饰器

    一般用于将函数转换为属性,例如:

    这里首先定义一个订单类

    class Order:
          goods_price = models.IntegerField(default=0)
          order_time = models.DateTimeField(auto_now_add=True)
    

    这里是一个商品类

    class OrderGoods:
          good_name = models.CharField(max_length=128)
          good_num = models.IntegerField(default=0)
    

    假如我要生成一个订单,里面要有商品,商品数量,商品价格,这个时候就可以使用装饰器@property将商品类属性变成订单类属性了

    class Order:
          goods_price = models.IntegerField(default=0)
          order_time = models.DateTimeField(auto_now_add=True)
          
          # 这里加装饰器,将商品类的属性变成订单类的属性
          @property
          def ordergoods(self):
                # 显然,想让调用商品类属性,就得要有一个商品类的对象,所有这里获取一个商品类对象
                return OrderGoods.objects.last()
    

    这时候订单类就可以直接调用商品类属性了,把别人的儿子变成自己的儿子

    a = Order()
    print(a.ordergoods)
    
  • 相关阅读:
    错题
    URL和URI区别
    适配器
    JAVA 反射机制
    JAVA 面试题
    JAVA 继承
    多态 JAVA
    Java面向对象编辑
    [LeetCode] Merge k Sorted Lists
    [LeetCode] Valid Palindrome
  • 原文地址:https://www.cnblogs.com/lance-lzj/p/13931903.html
Copyright © 2020-2023  润新知