Python面向对象编程(IDE:Python)

----------------------------------------------------------------------------

class Cat:    ----定义猫类

    def __init__(self,cat_name):

        self.name = cat_name

    def eat(self):    ----定义猫的属性

        print("%s爱吃鱼" % self.name)

    def sleep(self):

        print("爱睡觉")

    def catch(self):

        print("爱抓老鼠")

Tom = Cat("Tom")    ----创建汤姆猫对象

扫描二维码关注公众号,回复: 5164148 查看本文章

Tom.eat    ----汤姆猫的属性

Tom.catch

print(Tom)    ----输出汤姆的内存地址

Lazy_cat = Cat("大懒猫")

Lazy_cat.eat

Lazy_cat.sleep

print(Lazy_cat)

----------------------------------------------------------------------------

class Girl:

    def __init__(self,name,age)

        self.name = name

        self.__age = age    ----__两个下划线定义私有私有属性,对象外部不能访问

    def how_olda(self)

        print("%s现在%d岁" % (self.name,self.__age))

    def __how_oldb(self)

        print("%s现在%d岁" % (self.name,self.__age))

xiaofang = Girl("小芳",18)

print(xiaofang.__age)    ----输出错误,私有属性不能访问

print(xiaofang._Girl__age)    ----输出正确,可以利用对象._类名__属性来访问私有属性

xiaofang.how_olda    ----输出小芳现在18岁

xiaofang._Girl__how_oldb    ----输出正确,可以利用对象._类名__方法来调用私有方法

----------------------------------------------------------------------------

class 类名(父类名1,父类名2):    ----python中的继承

    def 方法a():    ----方法a也在父类中,在子类中可以重新定义,新建子类时调用子类的方法

        super().方法a    ----在子类中延续父类的方法,并拓展

----------------------------------------------------------------------------

print(类名.__mro__)    ----python中调用mro查看方法搜索的顺序

----------------------------------------------------------------------------

class Tools:

    count = 0    ----定义类属性

    def __init__(self,name):

        self.name = name

        Tools.count += 1

    @classmethod    ----定义类方法

    def show_count(cls)

        print("工具对象总数:%d" % cls.count)

knife = Tools("刀")

axe = Tools("斧子")

Tools.show_count

-------------------------------------------------------------------------------

class MusicPlayer:

    instance = None

    def __new__(cls,*args,**kwargs):    ----单例设计模式重写new方法

        print("这是音乐播放器a")

        if cls.instance is None:

            cls.instance is None:

        return cls.instance

        def __init__(self,name):

            self.playname = name

            print("%s开始播放" %s self.playname)

yoo = MusicPlayer("yoo")

yoho = MusicPlayer("yoho")

print(yoo)

print(yoho)

-------------------------------------------------------------------------------

单次执行初始化动作

class Once:

    init_flag = False    ----初始化动作插旗并置0

    def __init__(self):

    if Once.init_flag:    ----设置if语句判断是否执行初始化动作

        return    ----终止程序

    print("yoo")

    Once.init_flag = True    ----将旗子置1

---------------------------------------------------------------------------------

猜你喜欢

转载自www.cnblogs.com/mengxinteriri/p/10355828.html
今日推荐