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__()

  • 相关阅读:
    hihocoder 1049 后序遍历
    hihocoder 1310 岛屿
    Leetcode 63. Unique Paths II
    Leetcode 62. Unique Paths
    Leetcode 70. Climbing Stairs
    poj 3544 Journey with Pigs
    Leetcode 338. Counting Bits
    Leetcode 136. Single Number
    Leetcode 342. Power of Four
    Leetcode 299. Bulls and Cows
  • 原文地址:https://www.cnblogs.com/dmjsd/p/13492267.html
Copyright © 2011-2022 走看看