【python36--对象】
1、对象=属性+方法
2、实例化对象
#类名称首字母大写
class Turle:
#属性
color = 'green'
weight = 10
legs = 4
shell = True
mouth = '大嘴' #方法
def climb(selt):
print('我正在很努力的向前爬。。。。。')
def run(self):
print('我正在飞快的向前跑。。。。。')
def bite(self):
print('咬死你咬死你!!')
def eat(self):
print('有的吃,真满足。')
def sleep(self):
print('困了,睡了,晚安.Zzzz') >>> tt = Turle() #实例化对象
>>> tt.climb()
我正在很努力的向前爬。。。。。
>>> tt.run()
我正在飞快的向前跑。。。。。
>>> tt.bite()
咬死你咬死你!!
>>> tt.eat()
有的吃,真满足。
3、oo(面向对象)的特征:
--封装(对象封装了属性)
>>> list1 = [2,1,7,5,3]
>>> list1.sort() #正序排列
>>> list1
[1, 2, 3, 5, 7]
>>> list1.append(9)
>>> list1
[1, 2, 3, 5, 7, 9] 列表对象里面的方法和变量并不清楚,但是封装后只提供一个名称,我们只需要方法的名字,调用名字就可以
--继承
#类Mylist继承list 的方法和属性 >>> class Mylist(list):
pass >>> list2 = Mylist()
>>> list2.append(3)
>>> list2.append(5)
>>> list2.append(7)
>>> list2
[3, 5, 7]
>>> ---list2继承了Mylist的list对象
--多态:不同对象对同一方法响应不同的行动
>>> class A:
def fun(self):
print('我是小A。') >>> class B:
def fun(self):
print('我是小B。') >>> a = A()
>>> b = B()
>>> a.fun()
我是小A。
>>> b.fun()
我是小B。
>>> a,b两个不同对象对fun()对象采用的不同的行为
4、对象中的属性和方法,在编程中实际是什么?
变量(属性),函数(方法)
5、类和对象是什么关系呢?
类和对象的关系就如同是模具和用这个模具制作出的物品之间的关系。一个类为它的全部对象给出一个统一的定义,而他的每个对象则是符合这种定义的一个实体,因此类和对象的关系就是抽象和具体的关系
6、类的定义有时候或许不那么“拟物”,有时候会抽象一些,例如我们定义一个矩形,那你会为此添加那些属性和方法呢?
属性如:长宽高,方法如:计算周长,面积
7、面向对象的几个特征:
封装:对外部隐藏对象的工作细节
继承:子类自动共享父类之间的数据和方法的机制
多态:可以对不同类的对象调用相同的方法,产生不同的结果
练习题:
1、按照以下提示尝试定义一个Person类并生成类实例对象
属性:姓名(默认姓名为“小甲鱼”)
方法:打印姓名
提示:方法中对属性的引用形式需加上self,如 self.name
class Person:
name = '尘封' def print_name(self):
print(self.name) >>> p = Person()
>>> p.print_name()
尘封
>>>
2、按照以下提示尝试定义一个矩形并生成类实例对象
属性:长和宽
方法:设置长和 ->setRect(self),获得长和宽 ->getRect(self),获取面积 ->getArea(self)
提示:方法中对属性的引用形式需加上self,如:self.width
class Rectanle:
length = 5
width = 4 def setRect(self):
print('请输入矩形的长和宽...')
self.length = float(input('长:'))
self.width = float(input('宽:')) def getRect(self):
print('这个矩形的长是:%.2f,宽是:%.2f'% (self.length,self.width)) def getArea(self):
return self.length * self.width r = Rectanle()
r.getRect()
r.setRect()
r.getRect()
r.getArea()
【python36--对象】的更多相关文章
- Python--可迭代对象,迭代器,生成器
记得在刚开始学Python的时候,看到可迭代对象(iterable).迭代器(iterator)和生成器(generator)这三个名词时,完全懵逼了,根本就不知道是啥意识.现在以自己的理解来详解下这 ...
- 【Python】【容器 | 迭代对象 | 迭代器 | 生成器 | 生成器表达式 | 协程 | 期物 | 任务】
Python 的 asyncio 类似于 C++ 的 Boost.Asio. 所谓「异步 IO」,就是你发起一个 IO 操作,却不用等它结束,你可以继续做其他事情,当它结束时,你会得到通知. Asyn ...
- Python(名称空间、函数嵌套、函数对象)
一.名称空间: 名称空间 定义:存放名字和值的绑定关系 内置名称空间 python自带的名字,如print.int.str 解释器启动就会生效 全局名称空间 文件级别定义的名字,都会放 ...
- python3.6 + selenium2.53.1 查询数据库并将返回的内容中每一行的内容转换成class对象
环境: win10 python3.6 selenium2.53.1 准备工作:先安装pymysql python2.x链接数据库使用MySQLdb,而python3.x链接数据库使用pymysql ...
- Python3学习笔记(十四):可迭代对象、迭代器和生成器
记得在刚开始学Python的时候,看到可迭代对象(iterable).迭代器(iterator)和生成器(generator)这三个名词时,完全懵逼了,根本就不知道是啥意识.现在以自己的理解来详解下这 ...
- python--函数的返回值、函数参数的使用、名称空间与作用域、函数嵌套、函数对象
今天学习内容有函数的返回值.函数参数的使用.名称空间与作用域.函数嵌套. 下来我们一一查看. 函数的返回值 看几个栗子: def func(x): y=func() print(y) def foo( ...
- day27-面向对象进阶
#!/usr/bin/env python # -*- coding:utf-8 -*- # ----------------------------------------------------- ...
- 【转】Python中自定义可迭代对象
python 中内置的可迭代的对象有 list.tuple.set.dict 等,那么我们自己怎么定义一个可迭代的对象呢?先来段代码吧 import re import reprlib RE_WORD ...
- 如何一步一步用DDD设计一个电商网站(九)—— 小心陷入值对象持久化的坑
阅读目录 前言 场景1的思考 场景2的思考 避坑方式 实践 结语 一.前言 在上一篇中(如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成),有一行注释的代码: public interfa ...
- javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈
Array 是javascript中经常用到的数据类型.javascript 的数组其他语言中数组的最大的区别是其每个数组项都可以保存任何类型的数据.本文主要讨论javascript中数组的声明.转换 ...
随机推荐
- 数据表格控件 DataGridControl
数据表格控件 书154页 <?xml version="1.0" encoding="utf-8"?> <s:Application xmln ...
- servlet 的servletContext
- 同一个电脑安装两个jdk版本
同一个电脑安装两个jdk版本 场景:公司项目使用的jdk为1.,最近不是很忙,学习scala.该系统使用到了jdk1.8的特性,所以I need 俩版本,开整!!! . 准备两个版本的jdk我的两个j ...
- Lua之table
Lua table(表) 参考:http://www.runoob.com/lua/lua-tables.html table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数字.字典 ...
- python: numpy--函数 shape用法
http://blog.csdn.net/u010758410/article/details/71554224 shape函数是numpy.core.fromnumeric中的函数,它的功能是查看矩 ...
- HTML转义符
空格的替代符号有以下几种: 名称 编号 描述 &#; 不断行的空白(1个字符宽度) &#; 半个空白(1个字符宽度) &#; 一个空白(2个字符宽度) & ...
- Thread(26)
1.进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 2.线程:线程是进程中的一个执行单元,负责当前进程中程序的执行, ...
- linux下php中文UTF-8转换Unicode方法和注意事项
先说下遇到问题:1.php没有内置unicode_ecode函数可以直接使用 2.网上很多资料都是用$str = iconv($encoding, 'UCS-2', $str); window下转换出 ...
- Qt读取TXT文件时,GBK与UTF-8编码判断
读取txt文件时,很多时候无法获取文件的编码格式.如果直接进行使用,则有可能出现乱码.需要在使用前将其转为Unicode(Qt的默认编码格式). 虽然实际的编码格式种类非常多,但平常主要使用的有GBK ...
- linux 查找locate find
1.locate locate指令和find找寻档案的功能类似,但locate是透过update程序将硬盘中的所有档案和目录资料先建立一个索引数据库,在 执行loacte时直接找该索引,查询速度会较快 ...