zoukankan      html  css  js  c++  java
  • 类方法

    通过加上@ classmethod    将函数属性变为类方法   调用方式变为类名加上函数名   从而不需要经过实例化      例如:

     1 class Room:
     2     def __init__(self, name, owner, width, length, heigh):
     3         self.name = name
     4         self.owner = owner
     5         self.width = width
     6         self.length = length
     7         self.heigh = heigh
     8 
     9     @property  # 函数属性变为数据属性,调用方式改变
    10     def cal_area(self):
    11         # print('%s 住的 %s 总面积是%s' % (self.owner, self.name, self.width * self.length))
    12         return self.width * self.length
    13 
    14     @property
    15     def cal_total(self):
    16         return self.width * self.length * self.heigh
    17 
    18     @classmethod     # 表示这是类方法,默认传递类本身。通过类名.函数名
    19     def tell_info(cls):
    20         print(cls)
    21         print('你好,这是类方法')
    22 
    23 
    24 Room.tell_info()
    25 输出:
    26 <class '__main__.Room'>
    27 你好,这是类方法

    用处,跟实例没有关系,只跟类有关系的

    类方法只能访问类属性

    实例也可以调用类方法     此时将实例传进形参cls

  • 相关阅读:
    哈希值
    webpack配置(二)
    点击input选中文本
    height:calc(100%
    -webkit-overflow-scrolling
    字符串转数组
    gulp报错160
    webpack配置(一)
    移动端ios中click点击失效
    Spring定时器Quartz的用法
  • 原文地址:https://www.cnblogs.com/ch2020/p/12426935.html
Copyright © 2011-2022 走看看