python面向对象2 --各种方法

1、面向对象的各种方法:
属性方法:@property这个装饰器;看起开来像变量的一个方法
类变量:公共的,随着类一起定义
类方法:@classmethod 这个修饰器,函数里传(cls);不用实例化也能调用,可以节省内存
静态方法:@staticmethod ;(该函数不传入self或者cls),所以不能调用类属性和实例属性,但是别的方法可以调用他
__getattr__: 魔术方法
import time
class Car:
    country = "China" #类变量

    @staticmethod  #静态方法
    def say():
        print("哈哈哈")

    @classmethod #类方法
    def help(cls):
        print("请拨打客服热线4090xxxxx")

    def __init__(self,name):
        self.__name = name #实例变量
        self.crete_time = int(time.time()) - 60 * 60 * 24 * 365 * 5
    #实例方法
    def run(self):
        print("%s,run" % self.__name)

    @property #属性方法
    def age(self):
        car_age = ( int(time.time()) - self.crete_time ) / (60 * 60 * 24 * 365)
        return car_age
    def __getattr__(self, item): # 魔术方法
        print("item",item)


qq = Car("奇瑞qq")
print(qq.age)
print(qq.hhh)
# Car.help()

2、经典类,新式类:

class A: #经典类
     pass
class A():#新式类
     pass

 

posted @ 2021-07-07 09:19  黑。白。  阅读(54)  评论(0编辑  收藏  举报