【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中数组的声明.转换 ...
随机推荐
- 201803020001-多重MACD图.png
- win10 修改root文件
1.进入Win10系统的hosts文件所在位置,我们直接输入C:\Windows\System32\Drivers\etc后回车就可以打开了,右键hosts文件,选择属性 2.点击hosts属性对话框 ...
- word中加入endnote
http://jingyan.baidu.com/article/f54ae2fc3926d91e92b849c2.html 1.如果安装完endnote后,word中没有出现 endnote菜单,则 ...
- Maximum-SubsequenceSum
题目 https://pintia.cn/problem-sets/900290821590183936/problems/900291257604861953 给出一段数列,求数列的最大子列和,并输 ...
- VS2010 发布网站时文件丢失解决办法
网站项目中包含了一写rdlc的东西,发布网站选择仅限运行此应用程序所需文件,发布成功后发现这两个文件夹都没发布出来,找了下原因,解决办法是选择文件打开属性窗口找到生成操作,选项选择“内容”,重新发布, ...
- Unknown Treasure (卢卡斯 + 孙子定理, 模板题)
Unknown Treasure 参考链接 : https://www.cnblogs.com/linyujun/p/5199684.html 卢卡斯定理 : C(n, m) % p = C(n ...
- SQl server更新某阶段的匹配关系。
DECLARE @count INTEGERDECLARE @id INTEGERDECLARE @subjectID INTEGERSET @count=1SET @id =11894SET @su ...
- PGPDesktop在win7环境下的安装和使用
PGPDesktop在win7环境下的安装和使用 PGP的简介 PGP(Pretty Good Privacy),是一个基于RSA公钥加密体系的邮件加密软件,它提供了非对称加密和数字签名,是目前非常流 ...
- sql server和oracle数据库
sql server和oracle数据库安装按照官方教程即可:以及他们相应的管理工具,sql server management studio自带的,oracle的管理工具PLSQL需要单独下载安装, ...
- 远程服务调用RPC框架介绍,微服务架构介绍和RPC框架对比,dubbo、SpringClound对比
远程服务调用RPC框架介绍,微服务架构介绍和RPC框架对比,dubbo.SpringClound对比 远程服务调用RPC框架介绍,RPC简单的来说就是像调用本地服务一样调用远程服务. 分布式RPC需要 ...