zoukankan      html  css  js  c++  java
  • linux python3(面向对象)

    面向对象编程

    模板
    class Cat:
    #属性
    #方法
    def eat(self):
    print("猫吃鱼")
    def drink(self):
    print("猫喝水")
    def introduce(self):
    print(self.name,self.age)
    #创建对象
    tom = Cat()
    tom.eat()
    tom.drink()

    对象

    具体内容 对象:函数和全局变量的封装 函数:部分功能模块的封装

    谁调用self,self是哪个对象

    init方法

    创建对象之后,python自动调用init方法,将self指向刚创建对象的引用(地址),返回初始化之后的引用给tom
    def init

    str方法

    获取对象的描述(属性)信息
    def str

    对象间传递属性

    私有方法 私有属性

    在属性和方法前面加上两个下划线 "__test"
    私有方法需要被共有方法判断之后被调用

    def del: 方法

    在对象被销毁之前调用del方法

    继承

    class A(object):
    class B(A): 代表B类继承A类
    私有方法不会被继承
    私有属性不会被继承
    使用同一个类中的公有方法调用私有方法

    重写

    重写父类的方法
    调用父类的方法 super().方法

    多继承

    class C(A,B):
    类名.mro 决定调用一个方法时的顺序

    多态

    类属性、实例属性

    类属性可以在多个实例对象间共享
    实力属性只能在本实例对象中共享

    类方法、实例方法、静态方法

    定义类方法
    @classmethod
    def add_num(cls)
    调用类方法 类名.方法名() 或对象.方法名()

    @staticmethod 与类无关 但放在类中的静态方法
    def print_menu():
    调用类方法 类名.方法名() 或对象.方法名()

    new方法

    调用new方法创建对象
    调用init方法初始化对象
    调用del方法删除对象

    单例

    创建多个对象时,指向同一个对象。通过重写new方法来实现
    def new(cls):
    __instance = None
    if cls.__instance == None: #判断是否第一次
    cls.__instance ==object.new(cls)
    return cls.__instance
    else:

    return 上一次创建的对象的引用

    return cls.__instance

    异常处理

    try:

    except 异常名: 如(NameError,FileNotFoundError)
    若抛出的异常与定义的异常名字不一样,那就采用系统默认的异常来处理
    except Exception: 只要以上异常不满足,都采用这个异常处理

    except 异常名 as 变量名: 异常的核心原因放到变量中

    else: 没有异常才会执行
    finally: 不管有无异常,都会执行

    异常传递

    抛出自定义异常

    raise 抛出异常

    模块

    导入模块后,将模块翻译成二进制,保存成缓存形式(字节码pyc),为了保证下次程序时高效运行
    import A as 别名 #当模块名太长时使用别名
    from A import test1,test2
    from A import *
    先搜索当前路径,再搜索系统指定路径

    模块中的__name__变量、__all__变量

    name若是自身模块那么name的值为main,若为其他模块则是其他模块名。
    all = ["函数功能名1",“函数功能名2”] 允许被其他模块调用的内容

    包、init.py(python2)

    在文件夹下创建__init__py,导入模块时能够被导入
    init.py中写入__all__ = ["指定要使用的模块"]

    模块发布、安装

    创建setup.py,写入要发布的模块
    python3 setup.py build 执行发布模块命令,将模块安装到python3中
    python3 setup.py sdist 生产tar.gz压缩包
    python3 setup.py install 安装到了系统目录

    给程序传参

    import sys
    sys.argv接收参数

    列表生成式

    a = [i for i in range(1,5)]
    a = [1,2,3,4]
    a = [11 for i in range(1,5)]
    a = [11,11,11,11]

    集合

    集合用花括号,并且里面的元素不重复,例 a={1,1,2,2} ==》 {1,2}
    可以用于列表中元素去重

  • 相关阅读:
    VS2017代码对齐快捷键
    C#中的List的使用方法
    哈希表的基本使用
    javascript教程
    未能加载文件或程序集 Microsoft.Office.Interop.Excel, Version=14.0.0.0
    EXCEL 找不到编译动态表达式所需的一个或多个类型。是否缺少引用?解决办法
    C#跨线程操作控件
    Log4NET将日志写入数据库中
    winform ListView和DataGridView实现分页
    ListView在WinForm中多用于表的构建
  • 原文地址:https://www.cnblogs.com/mayiyi/p/14441528.html
Copyright © 2011-2022 走看看