python进阶(1)

2018-06-17  本文已影响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.

模块的安装和使用:

上一篇下一篇

猜你喜欢

热点阅读