美文网首页
Python面向对象

Python面向对象

作者: 冰岛2000 | 来源:发表于2018-02-06 09:40 被阅读0次
    • 类中定义方法要带参数self,类中访问属性要用self.属性self类似于Java中的this

    • __init__()方法,相当于Java中的构造方法

    • __str__()方法,相当于Java中的toString()方法

    • for循环加上elsefor循环执行完后会执行else

    • 类中加__的属性和方法,相当于Java中用private声明

    • __del__()方法,相当于Android中activity的destroy()方法


    • 多继承,如果父类马和父类驴有一个同名方法,那么子类骡子调用先继承的那个
    luozi.__mro__  #查看子类骡子的对象调用继承方法的先后顺序
    
    • Python设置私有属性或方法的方式其实是改名字,只要在私有属性或方法前加上_类名(一个下划线)就可以调用了

    • dir(类名)可以查看该类的私有方法

    • 类属性,相当于Java中的静态变量
      通过对象不能直接修改类属性,只会新建一个同名的实例属性

    • 类方法——用修饰器@classmethod来标识,第一个参数必须是类对象,一般以cls作为第一个参数

    • 静态方法——需要通过修饰器@staticmethod来进行修饰,静态方法不需要定义参数


    • __new__(cls)方法,至少要有一个参数cls,代表实例化的类;至少要有返回值,返回实例化后的实例。
      __new__(cls)方法,相当于Java中new Object()
      __init__(self)方法中的self,就是__new__(cls)方法返回的实例

    • 单例模式——只有一个对象,只执行一次__new__方法,只执行一次__init__方法

    • 捕获所有异常

    try:
        num = 100
        print num
    except Exception as errorMsg: #获取异常的信息描述
        print('产生错误了:%s'%errorMsg)
    else: #如果没有捕获异常,执行else语句
        print('没有捕获到异常,真高兴')
    
    • Python用raise抛出一个异常,异常 / 错误继承Exception类 / Error类

    • __name__作为Python脚本直接执行,值是脚本名;被导入执行,值是main
    if __name__ = 'main':
        print('这是测试')
    

    通过__name__可以选择性执行测试代码


    • from...import从模块中导入一个指定的部分到当前命名空间中

    • as重命名导入的模块

    • 要想导入不同目录下的模块,一般需要修改system模块的sys.path变量

    import sys
    sys.path.insert(0,'/home/python/Desktop/bd/test')
    print(sys.path)
    
    import test
    test.test()
    
    • 重新导入模块
      模块被导入后,import不能重新导入,重新导入需用reload(test)
    • 如果一个文件中有__all__变量,那么也就意味着这个变量中的元素,不会被from xxx import *时导入
    • 创建__init__.py文件,将同一个文件夹下有联系的模块组织在一起,成为包。
      __init__.py文件,可以定义__all__变量,控制from 包名 import ...导入的模块,也可以编写内容执行。
      包可以嵌套

    • 获取给程序传递的参数
    import sys
    print(sys.argv)
    
    if sys.argv[1] != '':
        print('第一个参数为%s',sys.argv[1])
    

    • 列表推导式——轻量级循环列表,概念上类似于Java中的匿名对象

    • 使用集合set,可以快速的完成对list中的元素去重复的功能

    相关文章

      网友评论

          本文标题:Python面向对象

          本文链接:https://www.haomeiwen.com/subject/atwyzxtx.html