zoukankan      html  css  js  c++  java
  • python(十七)类里的各种方法和变量

    类方法

          类里面自带的方法,不用实例化就可以调用,(相当于模型上自带的功能)   

          类方法是公共的,在实例方法里面可以随意调用    

          但在类方法里不能调用实例方法,不能使用实例变量,但是他可以调用其他的类方法

        

    @classmethod
        def cry(cls):
            print('%s'%cls.eye)

    类变量

         在类中,不在方法中定义的变量  不加self的变量  就是类变量,不需要实例化类就可以调用该变量

    class Person:
        eye='brown'

    实例方法

        需要实例化后,才能调用该方法

    实例变量

         需要实例化后,才能调用该变量

    属性方法

         看起来像变量的函数

        

    @property    
    def work_age(self):
            self.help()
            create_time = 1528860238
            result = (time.time()  - create_time) / (365*24*60*60)
            return round(result,1)
    cms = User()
    print(cms.work_age)

    私有变量和私有方法:

         不是公用的,只能在类里面调用,不能再类外面调用,方法或变量以__开头的,就是私有

    静态方法

    一个和类没有关系的方法

    不能调用实例方法,也不能调用类方法

    @staticmethod
        def help():
            print('help')

    继承

    子类继承父类公共的方法,也可以重写父类的方法

    父类的私有方法和私有变量不能继承

    重写:

        直接覆盖父类方法

       在父类的基础上添加新功能

       

    class Car:
        def run(self):
            print('run')
    
    class CcxCar(Car): #覆盖式的
        def run(self):
            print('拐弯跑')
    
    class CmcCar(Car): #在父类方法的基础上做修改
        def run(self):
            super().run()
            print('充电')

    魔鬼方法:

             一个类里面有一些特殊作用的方法,不需要你调用,在一些情况下会自动运行

             类里面 __funname__ 都是魔法方法,有一些特殊作用,比如 __init__()

  • 相关阅读:
    git
    HTML5 新增语义化标签
    vue directive 常用指令
    JS 数组 数组迭代方法 map, forEach, filter, some, every,
    图片居中
    进度条
    移动页面 REM自适应
    轮播图基本样式
    webpack3.0
    关于码云中项目提交的问题
  • 原文地址:https://www.cnblogs.com/dmjsd/p/13492267.html
Copyright © 2011-2022 走看看