python类的定义和使用

类的定义:

类是用来描述具有相同的属性和方法的对象的集合。它定义了该集合中的每个对象所共有的属性和方法。对象时类的实例。

二、Python创建类:

使用class语句来创建一个新类,class之后为类的名称并以冒号结尾,类的组成包括成员变量和成员函数。

三、Python构造函数和析构函数:

1.__init__()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法。

2.__del__(),被称为类的析构函数,__del__()在对象消逝的时候被调用,当对象不再被使用时,__del__()方法运行

四、Python创建实例对象

要创建一个类的实例,可以使用类的名称,并通过__init__方法接受参数

可以使用点(.)来访问对象的属性

类的文档字符串可以通过ClassName.__doc__查看

count是类属性,所以可以直接用类名.类属性来调用

类方法也可以使用类名.类方法来调用,eg:User().类方法名称

 

 五、Python内置类属性

__doc__:类的文档字符创

__name__:类名

__module__:类定义所在的模块(类的全名是'__main__.className',如果累位于一个导入模块mymod中,那么className.__module__等于mymod)

__bases__:类的所有父类构成元素(包含了一个由所有父类组成的元组)

__dict__:类的属性(包含一个字典,由类的数据属性组成)

六、Python对象销毁(垃圾回收)

1、同Java语言一样,Python使用了引用计数这一简单计数来追踪内存中的对象。

2、垃圾回收机制不仅针对引用计数未0的对象,同样也可以处理循环引用的情况。

上述实例中入执行:del u1,则u1对象被销毁,打印:User destroyed

七、Python类的继承

面向对象的变成带来的主要好处之一就是代码的重用,实现这种重用的方法之一就是通过继承继承机制。

1、声明类的时候括号中写要继承的父类。

2、类的继承衍生出类子类,子类可以继承或重写父类的方法,子类可以自定义新的方法或者成员变量,比如学生类可以继承用户类。

在继承中基类的构造方法不会被自动的调用,它需要再其派生类的构造中专门进行调用,所以要重写构造方法

在调用基类的方法时需要加上基类的类名前缀,且需要带上self参数变量

它的子类也可以定义新的成员变量

重写基类中的方法,同上

注意:

Python总是首先查找本类(对应的子类)中的方法,如果不在派生类中找到对应的方法,它才开始到基类中逐个查找。

(多重继承、嵌套继承)

八、Python类私有属性与方法

类的私有属性

__private_attrs:两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。在类内部的方法中使用时self.__private_attrs。

类的私有方法

__private_method:两个下划线开头,声明该方法为私有方法,不能在类地外部调用。在类的内部调用self.__private_methods

python不允许实例访问私有化的属性:

可以通过object.classname的方式来访问实例的私有属性

print(n._Mycounter__screctCount)

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

实例方法,类方法,静态方法都是通过实例或者类调用,只不过实例方法通过类调用时需要传递实例的引用(python3可以传递任意对象,其他版本会报错)

 

实例方法针对的是实例,第一个参数是self,普通对象方法至少需要一个self参数,代表类对象实例;类方法针对的是类,@classmethod它表示接下来是一个类方法,类方法的第一个参数cls,它们都可以继承和重新定义;静态方法用于作为程序中的共享资源,直接通过类去调用,不用实例化对象,不需要self参数,可以认为是全局函数,@staticmethod它表示接下来的是一个静态方法

 

posted on 2017-08-07 16:15  sunshine_zhf  阅读(2231)  评论(0编辑  收藏  举报

导航