博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python面向对象
阅读量:6159 次
发布时间:2019-06-21

本文共 1350 字,大约阅读时间需要 4 分钟。

hot3.png

概述:

  • 面向过程:根据业务逻辑从上到下写垒代码
  • 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可
  • 面向对象:对函数进行分类和封装,让开发“更快更好更强…
  • 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

 

 

 

 

 

转载于:https://my.oschina.net/u/3754854/blog/1615097

你可能感兴趣的文章
SpringMVC实战(注解)
查看>>
关于静态属性和静态函数
查看>>
进程的基本属性:进程ID、父进程ID、进程组ID、会话和控制终端
查看>>
spring+jotm+ibatis+mysql实现JTA分布式事务
查看>>
MyBatis启动:MapperStatement创建
查看>>
调查问卷相关
查看>>
eclipse启动无响应,老是加载不了revert resources,或停留在Loading workbench状态
查看>>
1. Git-2.12.0-64-bit .exe下载
查看>>
怎样关闭“粘滞键”?
查看>>
[转]React 教程
查看>>
拓扑排序介绍
查看>>
eclipse打开工作空间(workspace)没有任务反应
查看>>
使用Sybmol模块来构建神经网络
查看>>
字符串去分割符号
查看>>
WPF中,多key值绑定问题,一个key绑定一个界面上的对象
查看>>
UML类图简明教程
查看>>
java反编译工具(Java Decompiler)
查看>>
Android开发之自定义对话框
查看>>
微信Access Token 缓存方法
查看>>
Eclipsed的SVN插件不能识别之前工作空间的项目
查看>>