python面向对象---用函数实现面向对象原理
类的定义:一个抽象的概念,保存一些共有的属性和特征
#对象:对象代表具体事物的特征功能,是类的实例 #面向对象程序设计 通过函数实现面向对象设计
def dog(name,type,gender):
def jiao(dog1):
print("你看[%s]狗再叫" % dog1["name"])
#函数的局部作用域
def sleeping(dog1):
print("你看[%s]的类别" %dog1["type"]) #初始化参数
def init(name,type,gender):
dog2={
"name":name,
"type":type,
"gender":gender,
"jiao":jiao,#将函数名作为键值传入
"sleeping":sleeping
}
return dog2
return init(name,type,gender) d1=dog("小黄","中华田园犬","公")
d1['jiao'](d1)
#类:把一类事物相同的特征和动作整合到一起就是类,类是一个抽象的概念 #对象:就是基于类创建的一个具体事物,一个具体的事物具体的存在,,也是特征和动作整合到一块
#对象是由类产生的, 实例化:由类产生对象的过程叫做实例化
# #学校类
#特征: name addres type
#动作: 考试,招生,开除学生 class School:
#school1={"name":"oldboy","addres":"雁江","type":"私立学校"} def __init__(self,name,addres,types):
self.name=name
self.addres=addres
self.types=types def test(self):
print("%s学校正在考试" % self.name) def join_student(self):
print("%s 正在招生" %self.types) bob = School("oldboy","阳江","私立学校")
print(bob.__dict__)
bob.test()
bob.join_student() #通过函数实现面向对象设计
def school(name,addres,type): def init(name,addres,type):
school1={"name":name,
"addres":addres,
"type":type,
"test":test,
"join_student":join_student}
return school1 def test(school_only):
print("%s 学校在考试" %school_only['name']) def join_student(school_only):
print("%s 招生中" %school_only['type']) return init(name,addres,type) s1=school("oldboy","中国",'培训学校')
print(s1,s1['name'])
s1['test'](s1)
python面向对象---用函数实现面向对象原理的更多相关文章
- Python编程基础[函数和面向对象](三)
Python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也 ...
- Python基础系列----函数,面向对象,异常
1.前言 前 ...
- JavaScript函数及面向对象
函数及面向对象 目录 函数及面向对象 1. 定义函数 1. 定义方式一 2. 定义方式二 2. 调用函数 1. 参数问题 2. arguments 3. rest 3. 变量的作用域 1 . var的 ...
- python之函数、面向对象
学习python到了函数这一块进度有所放缓,主要还是想理解透彻,毕竟直觉告诉我函数是python是其中的关键,不管是模块.还是包.或者是库,都是建立在若干个函数定义上面. 章节后面就是关于面向对象编程 ...
- 简学Python第六章__class面向对象编程与异常处理
Python第六章__class面向对象编程与异常处理 欢迎加入Linux_Python学习群 群号:478616847 目录: 面向对象的程序设计 类和对象 封装 继承与派生 多态与多态性 特性p ...
- Python学习之路9☞面向对象的程序设计
一 面向对象的程序设计的由来 见概述:http://www.cnblogs.com/linhaifeng/articles/6428835.html 二 什么是面向对象的程序设计及为什么要有它 面向过 ...
- Python全栈开发【面向对象进阶】
Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...
- Python全栈开发【面向对象】
Python全栈开发[面向对象] 本节内容: 三大编程范式 面向对象设计与面向对象编程 类和对象 静态属性.类方法.静态方法 类组合 继承 多态 封装 三大编程范式 三大编程范式: 1.面向过程编程 ...
- python 学习笔记9(面向对象)
面向过程.函数式.面向对象 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象(Object Oriented Programmin ...
随机推荐
- RabbitMQ绑定、队列、消息、虚拟主机详解(五)
Binding:绑定,Exchange和Exchange.Queue之间的连接关系 Binding中可以包含RoutingKey或者参数 Queue:消息队列,实际存储消息数据 Durability: ...
- webstorm tools window
webstorm左侧的文件列表不见了, 通过菜单,view-->tools window-->project window就可以找到
- VS Project Property Manage
概念:Project Property 和 Property Sheet. Project Property:项目属性,是你当前项目的属性配制,保存在你工程的配制文件中,rojectName.vcxp ...
- day52—JavaScript拖拽事件的应用(自定义滚动条)
转行学开发,代码100天——2018-05-07 前面的记录里展示了JavaScript中鼠标拖拽功能,今天利用拖拽功能实现另一个应用场景——自定义滚动条(作为控制器)的用法. 常通过自定义滚动条控制 ...
- SpringBoot 切换国际化
git:https://github.com/xiaozhuanfeng/demoProj 代码结构: application.properties: spring.messages.basename ...
- JMeterContext----上下文
http://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterContext.html org.apache.jmeter.threads ...
- Spring Boot 之 Redis
一.pom.xml引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifac ...
- layui中获取全部提交的数据
<form class="layui-form" action="">...........input textarea ......</fo ...
- sql中的isnull
ISNULL 使用指定的替换值替换 NULL. 语法ISNULL ( check_expression , replacement_value ) 参数check_expression 将被检查是否为 ...
- [Python3 填坑] 001 格式化符号 & 格式化操作符的辅助指令
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 Python 格式化符号表 举例说明 (1) %c (2) %s 与 %d (3) %o (4) %x (5) %f (6) %e (7 ...