zoukankan      html  css  js  c++  java
  • Python面向对象编程(IDE:Pycharm)

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

    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")    ----创建汤姆猫对象

    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

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

     def demo1:

        return int(input("请输入一个数字:"))

    def demo2:

        return demo1()

    try:

        print(demo2)

    except Exception as a:

        print("未知错误:%s" % a)

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

    def set_password():

        print("自定义异常")

        pwd = input(“请设置密码:”)

        if len(pwd) >= 8:

            return pwd

        ex = Eception("密码长度不够")

        raise ex

    try:

        print(set_password())

    except Exception as result:

        print(result)

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

    if __name__ == "__main__":    ----增加判断语句测试代码

         main()    ----测试语句

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

    新建python包,在__init__文件里使用from . import 导入在导入包时要调用的模块

  • 相关阅读:
    POJ1737
    USACOTrainning.Cow Pedigrees
    USACOTrainning.Controlling Companies
    对象之间的关系有哪些,如何使用面向对象语言表达
    面向对象思想
    几种搜索引擎算法研究
    jQuery性能优化手册
    生成随机数的一个可靠算法,高质量的均匀分布的随机函数
    浮广告,兼容ie、firefox,多个漂浮不冲突,调用只需两行代码
    C#相关算法
  • 原文地址:https://www.cnblogs.com/mengxinteriri/p/10355828.html
Copyright © 2011-2022 走看看