美文网首页
python进阶(1)

python进阶(1)

作者: 常伟波 | 来源:发表于2018-06-17 20:19 被阅读0次

    1.继承    2.重写    3.类方法    4.静态方法    5.多态    6.类属性 与 实力属性    7.__new__方法    8.try异常捕捉    9.raise抛出自定义异常    10.模块    11.模块的制作与上传

    上面的是我写的内容的一些简介,下面后详细的讲到的^_^*

    1. 继承:

    多继承的时候,子类后面的父类名应该在括号中用,隔开

    父类中的初始化带参数,所以子类即使没有初始化,选择继承父类之后也要带上对应的参数。

    1.继承:

    多继承的时候,子类后面的父类名应该在括号中用,隔开

    父类中的初始化带参数,所以子类即使没有初始化,选择继承父类之后也要带上对应的参数

    __mro__的方法是:写出顺序  (类名.__mro__)

    2.重写:

    当子类的方法名与父类的方法名相同时,就是对父类对应方法的重写

    有三种方法:

    (1)父类名.__init__(self.name)

    括号中的方法名前面必须有self:         Cat.__init__(self.name)

    (2) super(子类名,self).__init__(name)     super(子类名,self).子类的方法名(  )

    (3) super().__init__(name)      super().父类名(父类属性)           super中不用self

    3. 类方法

    (1.)def方法名( cls )  每一个类方法上面必须有@classmethod,这是类方法的一个标志

    在一个类中,使用cls.类属性名可以直接修改在文件中的类属性,而实例化的方法都不能直接修改类的属性

    (2.)当实例化对象修改类属性时,只有本人的被修改了,其他的不变

      (3.)   删除对象的指定属性:del  people01.  guoji    del对象名.方法名

    4.静态方法:

    定义函数函数名():不可以传入self或者是cls等参数,但是可以传入其他的参数:

    调用时一般要用类名,否则容易出错

    既不需要访问实例属性或者调用实例方法

    也不需要访问类属性或者调用类方法

     静态方法不能调用非静态的方法

    5.多态

    面向对象的三大特点是:封装,继承,多态

    多态:可以增加代码的灵活度,不影响到类的内部设计

    6.类属性 与 实例属性:

    总结:

    如果需要在类外修改类属性,必须通过类对象去引用然后进行修改。如果通过实例对象去引用,会产生一个同名的实例属性,这种方式修改的是实例属性,不会影响到类属性,并且之后如果通过实例对象去引用该名称的属性,实例属性会强制屏蔽掉类属性,即引用的是实例属性,除非删除了该实例属性。

    实例对象能调用实例方法、静态方法、类方法和类属性,实例属性。

    而类除了不能调用实例属性,其他的方法和属性都能调用。

    7.__new__方法:

    (*1.) __new__至少要有一个参数cls,代表要实例化的类,此参数在实例化时由Python解释器自动提供

    (*2.)__new__必须要有返回值,返回实例化出来的实例,这点在自己实现__new__时要特别注意,可以return父类__new__出来的实例,或者直接是object的__new__出来的实例

    (*3.)__init__有一个参数self,就是这个__new__返回的实例,__init__在__new__的基础上可以完成一些其它初始化的动作,__init__不需要返回值

    (*4.)我们可以将类比作制造商,__new__方法就是前期的原材料购买环节,__init__方法就是在有原材料的基础上,加工,初始化商品环节

    如果return返回了__new__(cls),就相当于从父类的方法中调用了__new__的方法,也就是我们在创建这个类的操作(我们创建类的时候不也是在内存中开辟了一块地方吗,其实object或者是 父类里面也有__new__这个方法,就是当我们创建一个类的时候就会自动的调用的),所以要直接调用实现这个实例化,让它再下来。   <<<<<<<<<自己理解的

    在后面的单例模式中会用到:向上面说的一样,在你多次创建对象时,他还是只会保留第一次创建的。

    8.异常捕捉:

    Except后面可以跟你要捕捉的错误类型 如:IOError,TypeError,等等都可以,但是,一旦你不知道你要捕捉的错误是什么,要怎么办呢,所以有一个Exception的存在,它代表了所有的错误。如下图:

    捕捉异常try的嵌套:

    Try的志向循序: 从上到下执行,如果发生错误了try出了错误,后面的语句后面的语句就不会执行了,走到了错误输出的地方。

    try不影响后面的语句,finally后面的语句不管是否try出错误都会执行。当你执行ctrl+c退出时依然会try出异常

    9.raise抛出自定义异常:

    你可以用raise语句来引发一个异常。异常/错误对象必须有一个名字,且它们应是Error或Exception类的子类


    异常处理中抛出异常:

    10.模块:

    导入模块,例如import os, import sys,

    模块的导入方式:1.import模块名  2.from ...import ...

    Import导入的时候如果下面要使用时 需要用 模块名.函数名

    而from ...import ...导入使用后,只需要调用函数名即可。自己写的模块导入时,一般要用from ...import ...这一种方式导入的受路径的限制小一点,当你的文件移动时,依然可以执行。

    11.模块的制作和上传:

    1.

    2.

    3.

    4.

    模块的安装和使用:

    相关文章

      网友评论

          本文标题:python进阶(1)

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