• python学习笔记(二十二)实例变量、实例方法、类变量、类方法、属性方法、静态方法


    实例变量:在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,也就是成员变量。

    实例方法:在类中声明的方法,例如:my(self),必须实例化之后才可以使用,否则会报错。

    类变量:公共的变量,每个实例都可以用。

    类方法

             1、不用实例化就可以直接调用。

             2、它可以通过cls使用类变量

             3、它不能调用这个类里面的其他实例方法和实例变量

    静态方法

             #你不想实例化的时候,就可以定义成类方法

          #静态方法就是一个普通函数,只不过是写在类里面而已,它用不了类变量、类方法、实例变量、实例方法

    下面从实例中了解这几个知识点的具体用法,代码如下:

    class Baby():
        nationality = 'China' #类变量,公共的变量,每个实例都可以用
        def __init__(self,name):   #带了self的都是实例方法,必须实例化了之后才能调用,否则会报错
            self.name = name  #实例变量,也叫成员变量
    print('self的内存地址',id(self)) def cry(self): #实例方法 print(
    '哇哇哇') @property #这是一个装饰器,也叫属性方法,hhh函数就不能传参数了。如果函数没有入参就可以写property,调用的时候不能加括号了。 def hhh(self): return 198 # b = Baby() # print(b.hhh) #调用的时候不能加括号,看起来像属性的一个方法。 @classmethod #类方法 def xm(cls): #cls代表的就是baby print(cls.nationality) print('我是类方法') # print(cls.name) cls不能调用实例变量,会报错 # cls.cry() cls不能调用实例方法,会报错 @staticmethod #静态方法 def xh(): print('这个是静态方法,它和一个没写在类里面的函数一样')
    ##############静态方法调用#############
    Baby.xh()
    
    ###############类变量调用#############
    Baby.nationality='USA'   #类变量是可以直接通过类名.xxx来进行修改的。
    
    dcg = Baby()
    dcg.nationality = 'Japan'     #不会改变类变量的值,只是改变了dcg这个实例中nationality的值
    print(dcg.nationality)
    yjt = Baby()
    print(yjt.nationality)
    
    ############装饰器,属性方法#############
    b = Baby()
    print(b.hhh)    #调用时直接对象.函数名,不需要加括号,看起来像属性的方法
    
    ##############self###############
    dcg = Baby('春光')
    print('董春光的内存的',id(dcg))
    zll = Baby('张流量')
    print('董春光的内存的',id(zll))

    >>>self的内存地址 7338696
    董春光的内存的 7338696
    self的内存地址 7338920
    张流量的内存的 7338920
  • 相关阅读:
    JavaScript中的事件循环
    CSS布局
    Tomcat相关
    C#参数中ref和out的区别
    angular启动4200端口后,如何停止监听4200端口
    表联接(交叉连接,内联,外联)
    如何使用vs自带的反编译工具Lldasm
    软件架构需要注意的几点,待补充。。。
    SqlServer中With(NOLOCK)
    TypeScript preview
  • 原文地址:https://www.cnblogs.com/mululu/p/9072596.html
Copyright © 2020-2023  润新知