Python 面向对象介绍
时间:2018-08-19
本文章向大家介绍Python 面向对象,需要的朋友可以参考一下。
一、类的实例化:调用类产生对象的过程称为类的实例化,实例化的结果是一个对象,或称为一个实例 class People: def __init__(self,name,age,sex): self.name=name self.age=age self.sex=sex def run(self): print('%s is running' %self.name) 实例化做了三件事 1、先产生一个空对象 2、自动触发类内部__init__函数的执行 3、将空对象,以及调用类括号内传入的参数,一同传给__init__,为对象定制独有的属性 obj=People('egon',18,'male') People.__init__(obj,'egon',18,'male') 会产生对象的名称空间,如何查看 print(obj.__dict__) 二;对象的操作 print(obj.name) obj.__dict__ obj.education='哈佛' del obj.name obj.age=19 print(obj.__dict__) 三:对象属性的查找顺序:先找对象自己的名称空间----》类的名称空间 class People: x=1 def __init__(self,name,age,sex): self.name=name self.age=age self.sex=sex def run(self): self=obj print('%s is running' %self.name) obj.name obj=People('egon',18,'male') People.__init__(obj,'egon',18,'male') obj1=People('egon1',18,'male') People.__init__(obj,'egon',18,'male') obj2=People('egon2',18,'male') People.__init__(obj,'egon',18,'male') 1、类的数据属性:是给对象用的,而且直接共享给所有对象用的,内存地址都一样 print(People.x) People.x=11111 print(id(People.x),People.x) obj.x='obj================》' print(id(obj.x),obj.x) print(id(obj1.x),obj1.x) print(id(obj2.x),obj2.x) 2、类的函数属性:也是给对象用,但是绑定给对象用的,绑定到不同的对象就是不同的 绑定方法,内存地址都不一样,但其实只想都是同一个功能 print(People.run) <function People.run at 0x00000226E7C78A60> People.run(123123) People.run(obj) print(obj.run) print(obj1.run) print(obj2.run) 四:绑定方法的特殊之处: 1、 绑定给谁就应该由谁来调用, 2、谁来调用就会把谁当做第一个参数传入 class People: x=1 def __init__(self,name,age,sex): self.name=name self.age=age self.sex=sex def run(self): self=obj print('%s is running' %self.name) obj.name def f1(): print('from f1') def f2(self): pass obj=People('egon',18,'male') People.__init__(obj,'egon',18,'male') obj1=People('egon1',18,'male') People.__init__(obj,'egon',18,'male') obj2=People('egon2',18,'male') People.__init__(obj,'egon',18,'male') obj.run() obj1.run() obj2.run() print(People.f1) People.f1() print(obj.f1) obj.f1() People.f1(obj) 五:一切皆对象:在python3中统一了类与类型的概念,类即类型 l=list([1,2,3]) print(type(l)) print(type(obj)) l.append(4)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 第09期:有关 MySQL 字符集的乱码问题
- 机器人系统建模与辨识工具箱sympybotic
- 微服务聚合Swagger文档,这波操作是真的香!
- CEF-version2623完整编译教程
- Node 中如何引入一个模块及其细节
- PHP 错误和异常处理(下)
- PHP 错误和异常处理(上)
- 玩转 PhpStorm 系列(一):主题篇
- 如何用云开发打造“万人同屏”高并发实时互动小程序
- 实战丨云开发帮你和「火箭少女」合个影!
- 开源数据闪回工具—binlog2sql介绍
- 盘点前端面试常见的15个TS问题,你能答对吗?
- 『深度思考』对CenterNet的一些思考与质疑·测试对比CenterNet与U版YoloV3速度与精度
- 优秀员工应该具备的11个特质
- 腾讯位置服务教你快速实现距离测量小工具