概述:
- 面向过程:根据业务逻辑从上到下写垒代码
- 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可
- 面向对象:对函数进行分类和封装,让开发“更快更好更强…
- python类在2.7中区分类(经典类和新式类),3.x后不再使用。
类的特点:
1.封装
2.继承
3.多态
类——如何区分两种类
#定义一个经典类,返回值为classobjclass a: pass#定义一个新式类,新式类集成的参数是类的对象,返回值为typeclass b(object): pass#父是class a,如果他的祖先是class b则是一个新式类;如果他的祖先是class a则为经典类。class c(a): pass
类的定义
属性和方法定义
属性
类的属性和实例的属性
class Chinese(person): nation=china#类的属性,共有的def __init__(self,name): self.name=name#实力属性,特殊的,因个体不同而变化的
属性的可见性:
共有属性
私有属性,Python并没有真正的私有属性。
私有属性的定义:__name改名换姓;_name,意义在于唤起用户注意
class chinese: nation='chian' def __init__(self,id,name): self._id=id#没有换名字,没有改变,直接用self._id调取,但不能够改变内容 self.__name=name#没有被保护,可用.__dict__查看,只是改名字,可以改变内容 def fun(self,msg): print self.__name,msg
访问属性
直接访问,不推荐,因为函数已经被封装
自定义get读操作,set写方法
通过属性装饰器
@***seter
@***delet
#!/user/bin/python#-*-coding:utf-8-*-class a: nation='china' def __init__(self,id,name): self._id=id self.__name=name def func(self,msg): print self.__name,msg def getid(self): return self._id def setid(self,id): self._id=id @property def name(self): return self.__name @name.setter def name(self,name): self.__name=name @name.deleter def name(self): del self.__name