编程语言
首页 > 编程语言> > python面向对象

python面向对象

作者:互联网

l  面向对象

Python一切皆对象:https://www.cnblogs.com/magicking/p/8971740.html

 

类是抽象的模板,实例是根据类创建出来的一个个具体的”对象”, 定义了一个类,电脑并没有创建什么存储空间。只有当我们完成类的实例化(Instance)时,电脑才会创建一个具体的对象(Object),并为之分配存储空间。所以对象(Object)是类(Class)的一个实例。

https://www.yiibai.com/object_oriented_python/object_oriented_python_introduction.html

https://blog.csdn.net/42134789/article/details/80194788

http://c.biancheng.net/view/2263.html

 

访问限制

java有private\public\protected的访问限制,python根据变量和方法名来访问限制

l  私有变量/方法

名称以双下划线开头(__age),即私有的,只能在类内部访问,在外部不能访问是因为python解释器对外把__age改变成”_类名__age”;在类外使用使用people().__age=12,这不是对原来私有成员访问,而是添加一个新的实例变量__age

总结:

                                                                                                                                                           

类定义

class 类名(继承类):

         。。。。

.1     类对象创建和使用

#创建类对象

a = 类名(参数)   --调用类的__init__构造方法,a指向类对象,a为类实例

.2     方法

关键字self是个非常重要的参数,代表创建的对象本身

.2.1           初始化方法

def __init__(self,….)

         self.name=xxx

 

.2.1           释放方法

def __del__(self):  # 对象资源被释放时触发,在对象即将被删除时的最后操作

.3     类变量与实例变量

 

 

 

.3.1           类变量

.3.2           实例变量

 

.4     类方法与实例方法

与某个对象进行绑定的函数称为方法;类外定义的函数没有同对象进行绑定,称为函数。

.4.1           类方法

@classmethod

def xxx(cls,)

                   cls.类变量

 

__init__.py

test  --test目录层次

         __init__.py

         test_a.py

         test_b.py

包含__init__.py文件的文件夹为模块,每个模块包中都有一个__init__.py文件,当import包时,会执行__init__.py文件,这样可以在__init__.py文件中批量导入我们所需要的模块,而不是一个个的导入

__init__.py文件的内容可以如下:

 

 

 

__init__.py文件的作用

l  __init__.py文件中导入需要使用的模块

import test

test.os 

把需要导入大量模块,存放在__init__.py文件中,这样直接导入该包,就可以使用了,减少代码量

l  __init__.py文件里存放模块的全局变量和公共方法

如定义变量a,或函数,或类;使用test.a调用

l  __all__变量的作用

__init__.py文件中可以使用__all__变量来直接限制from test import *时导入的模块,如上图,会导入test_a,test_b,os模块,其中a导入不了,就无法使用a

使用方式

l  使用import test

直接导入test包,执行__init__.py文件

test.a  --调用a变量

test.os --调用os模块

test.test_a  --报错,无法调用,因为只导入了test包,没有导入该包下的模块

l  使用 from test import *

#无__all__变量时

执行__init__.py文件,导入该包下的所有模块和该文件中变量和方法,可以调用a,os,test_a,test_b

#有__all__变量时

执行__init__.py文件,导入该变量指定的模块,可以调用os,test_a,test_b

l  使用 from test import a

执行__init__.py文件,只会导入a

标签:__,__.,变量,python,py,面向对象,init,test
来源: https://www.cnblogs.com/Durant0420/p/14440960.html