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

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

一. 面向对象的编写

面向对象编写的方法

方式一:归类+提取公共值

方式二:在指定类中编写和当前类相关的所有代码 + 提取公共值

class People:	def __init__(self,name,age,gender): # 特殊的方法,如果 类名() ,则该方法会被自动执行,		# 目的进行数据初始化 (构造方法).通过构造方法,可以将数据进行打包,以后使用时,去其中获取即可.		self.n1 = name		self.n2 = age		self.n3 = gender	def kc(self):		data = "%s,性别%s,今年%s岁,喜欢吃" %(self.n1,self.n3,self.n2)		print(data)	def db(self):		data = "%s,性别%s,今年%s岁,喜欢玩" %(self.n1,self.n3,self.n2)		print(data)	def bj(self):		data = "%s,性别%s,今年%s岁,喜欢喝" %(self.n1,self.n3,self.n2)		print(data)obj = People('老狗',20,'男')      # 创建了一个对象/实例化一个对象, 将数据封装到对象中,以供自己在方法中调用, 还可以把封装了数据的对象供其他函数使用obj.kc()                          # 通过对象调用其中一个方法								  # obj是对象, db()是方法obj.db()obj.bj()

  

二. 面向对象的三大特性:封装/继承/多态

封装: 

将相关功能封装到一个类中:

class Message:	def email(self):pass	def msg(self):pass	def wechat(self):pass

  将数据封装到一个对象中:

class Person:	def __init__(self,name,age,gender):		self.name = name		self.age = age		self.gender = gender

  

继承: 原则:现在自己类中找,没有就去父类找. 父类和子类是相对的.

在方法中有self.f2时, 如果其他的类中也有f2()这个方法, 按照调用的对象的继承的顺序来看是调用哪个方法

支持多继承(先找左/再找右), 多继承可以提高代码重用性 class Foo(Base, SuperBase): pass

class SuperBase:		def f3(self):			print('f3')class Base(SuperBase):  # 父类,基类	def f2(self):		print('f2')class Foo(Base):        # 子类,派生类	def f1(self):		print('f1')obj = Foo()obj.f1()obj.f2()obj.f3()

  

多态:

多种形态或多种状态, 由于python原生支持多态,所以没有特殊性

 

转载于:https://www.cnblogs.com/NachoLau/p/9543910.html

你可能感兴趣的文章
Kubernetes安装
查看>>
GO语言访问ORACLE
查看>>
informix常用命令
查看>>
RHCE基础指南:Linux Security Modules
查看>>
4、AngularJS2 数据显示
查看>>
如何提高条码的安全性
查看>>
子网的划分
查看>>
打造一台称手的工作站-Ubuntu上建立PHP服务器(apache+php+mysql)
查看>>
动态规划-装配线调度
查看>>
我的友情链接
查看>>
Android布局属性详解
查看>>
小企业数据备份
查看>>
抢滩登陆游戏android源码
查看>>
HAProxy负载均衡实验
查看>>
如何通过组策略配置proxy.pac
查看>>
设置ssh无密码登录
查看>>
webpack优化——定义“生产”环境
查看>>
我的友情链接
查看>>
OpenStack各服务所用端口号总结
查看>>
多线程并发下载图片NSThread
查看>>