上一篇《Python 面向对象(初级篇)》文章介绍了面向对象基本知识:
本篇将详细介绍Python 类的成员、成员修饰符、类的特殊成员。
类的成员可以分为三大类:字段、方法和属性
注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存中就有多少个普通字段。而其他的成员,则都是保存在类中,即:无论对象的多少,在内存中只创建一份。
一、字段
字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同,
12345678910111213141516 | class Province: # 静态字段 country = \’中国\’ def __init__(self, name): # 普通字段 self.name = name # 直接访问普通字段obj = Province(\’河北省\’)print obj.name # 直接访问静态字段Province.country |
字段的定义和使用
由上述代码可以看出【普通字段需要通过对象来访问】【静态字段通过类访问】,在使用上可以看出普通字段和静态字段的归属是不同的。其在内容的存储方式类似如下图:
由上图可是:
应用场景: 通过类创建对象时,如果每个对象都具有相同的字段,那么就使用静态字段
二、方法
方法包括:普通方法、静态方法和类方法,三种方法在内存中都归属于类,区别在于调用方式不同。
1234567891011121314151617181920212223242526272829303132 | class Foo: def __init__(self, name): self.name = name def ord_func(self): \”\”\” 定义普通方法,至少有一个self参数 \”\”\” # print self.name print \’普通方法\’ @classmethod def class_func(cls): \”\”\” 定义类方法,至少有一个cls参数 \”\”\” print \’类方法\’ @staticmethod def static_func(): \”\”\” 定义静态方法 ,无默认参数\”\”\” print \’静态方法\’ # 调用普通方法f = Foo()f.ord_func() # 调用类方法Foo.class_func() # 调用静态方法Foo.static_func() |
方法的定义和使用
相同点:对于所有的方法而言,均属于类(非对象)中,所以,在内存中也只保存一份。
不同点:方法调用者不同、调用方法时自动传入的参数不同。
三、属性
如果你已经了解Python类中的方法,那么属性就非常简单了,因为Python中的属性其实是普通方法的变种。
对于属性,有以下三个知识点:
1、属性的基本使用
123456789101112131415 | # ############### 定义 ###############class Foo: def func(self): pass # 定义属性 @property def prop(self): pass# ############### 调用 ###############foo_obj = Foo() foo_obj.func()foo_obj.prop #调用属性 |
属性的定义和使用
由属性的定义和调用要注意一下几点:
注意:属性存在意义是:访问属性时可以制造出和访问字段完全相同的假象
属性由方法变种而来,如果Python中没有属性,方法完全可以代替其功能。
实例:对于主机列表页面,每次请求不可能把数据库中的所有内容都显示到页面上,而是通过分页的功能局部显示,所以在向数据库中请求数据时就要显示的指定获取从第m条到第n条的所有数据(即:limit m,n),这个分页的功能包括:
123456789101112131415161718192021e=\”crayon-5812b3550e5b5576624422-17\”>1718192021ت“函数”供使用(可以讲多函数中公用的变量封装到对象中)
本篇将详细介绍Python 类的成员、成员修饰符、类的特殊成员。 类的成员类的成员可以分为三大类:字段、方法和属性 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存中就有多少个普通字段。而其他的成员,则都是保存在类中,即:无论对象的多少,在内存中只创建一份。 一、字段 字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同,
字段的定义和使用 由上述代码可以看出【普通字段需要通过对象来访问】【静态字段通过类访问】,在使用上可以看出普通字段和静态字段的归属是不同的。其在内容的存储方式类似如下图: 由上图可是:
应用场景: 通过类创建对象时,如果每个对象都具有相同的字段,那么就使用静态字段 二、方法 方法包括:普通方法、静态方法和类方法,三种方法在内存中都归属于类,区别在于调用方式不同。
方法的定义和使用 相同点:对于所有的方法而言,均属于类(非对象)中,所以,在内存中也只保存一份。 不同点:方法调用者不同、调用方法时自动传入的参数不同。 三、属性 如果你已经了解Python类中的方法,那么属性就非常简单了,因为Python中的属性其实是普通方法的变种。 对于属性,有以下三个知识点:
1、属性的基本使用
属性的定义和使用 由属性的定义和调用要注意一下几点:
注意:属性存在意义是:访问属性时可以制造出和访问字段完全相同的假象 属性由方法变种而来,如果Python中没有属性,方法完全可以代替其功能。 实例:对于主机列表页面,每次请求不可能把数据库中的所有内容都显示到页面上,而是通过分页的功能局部显示,所以在向数据库中请求数据时就要显示的指定获取从第m条到第n条的所有数据(即:limit m,n),这个分页的功能包括:
|
下一篇:Python文件管理