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--对象】的更多相关文章

  1. Python--可迭代对象,迭代器,生成器

    记得在刚开始学Python的时候,看到可迭代对象(iterable).迭代器(iterator)和生成器(generator)这三个名词时,完全懵逼了,根本就不知道是啥意识.现在以自己的理解来详解下这 ...

  2. 【Python】【容器 | 迭代对象 | 迭代器 | 生成器 | 生成器表达式 | 协程 | 期物 | 任务】

    Python 的 asyncio 类似于 C++ 的 Boost.Asio. 所谓「异步 IO」,就是你发起一个 IO 操作,却不用等它结束,你可以继续做其他事情,当它结束时,你会得到通知. Asyn ...

  3. Python(名称空间、函数嵌套、函数对象)

    一.名称空间: 名称空间 定义:存放名字和值的绑定关系       内置名称空间 python自带的名字,如print.int.str 解释器启动就会生效   全局名称空间 文件级别定义的名字,都会放 ...

  4. python3.6 + selenium2.53.1 查询数据库并将返回的内容中每一行的内容转换成class对象

    环境: win10 python3.6 selenium2.53.1 准备工作:先安装pymysql python2.x链接数据库使用MySQLdb,而python3.x链接数据库使用pymysql ...

  5. Python3学习笔记(十四):可迭代对象、迭代器和生成器

    记得在刚开始学Python的时候,看到可迭代对象(iterable).迭代器(iterator)和生成器(generator)这三个名词时,完全懵逼了,根本就不知道是啥意识.现在以自己的理解来详解下这 ...

  6. python--函数的返回值、函数参数的使用、名称空间与作用域、函数嵌套、函数对象

    今天学习内容有函数的返回值.函数参数的使用.名称空间与作用域.函数嵌套. 下来我们一一查看. 函数的返回值 看几个栗子: def func(x): y=func() print(y) def foo( ...

  7. day27-面向对象进阶

    #!/usr/bin/env python # -*- coding:utf-8 -*- # ----------------------------------------------------- ...

  8. 【转】Python中自定义可迭代对象

    python 中内置的可迭代的对象有 list.tuple.set.dict 等,那么我们自己怎么定义一个可迭代的对象呢?先来段代码吧 import re import reprlib RE_WORD ...

  9. 如何一步一步用DDD设计一个电商网站(九)—— 小心陷入值对象持久化的坑

    阅读目录 前言 场景1的思考 场景2的思考 避坑方式 实践 结语 一.前言 在上一篇中(如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成),有一行注释的代码: public interfa ...

  10. javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈

    Array 是javascript中经常用到的数据类型.javascript 的数组其他语言中数组的最大的区别是其每个数组项都可以保存任何类型的数据.本文主要讨论javascript中数组的声明.转换 ...

随机推荐

  1. java微信小程序调用支付接口

    简介:微信小程序支付这里的坑还是有的,所以提醒各位在编写的一定要注意!!! 1.首先呢,你需要准备openid,appid,还有申请微信支付后要设置一个32位的密钥,需要先生成一个sign,得到pre ...

  2. POJ 3461 Oulipo(模式串在主串中出现次数 可重叠)

    Oulipo [题目链接]Oulipo [题目类型]KMP &题意: 给你两个字符串p和s,求出p在s中出现的次数. &题解: kmpC函数就是解题的,其中也就j=nex[j]难理解一 ...

  3. MyBatis基础入门《十八》动态SQL(if-where)

    MyBatis基础入门<十八>动态SQL(if-where) 描述: 代码是在<MyBatis基础入门<十七>动态SQL>基础上进行改造的,不再贴所有代码,仅贴改动 ...

  4. java基础练习

    String str = "Nothing is impossible to a willing heart"; String str2 = "No cross, no ...

  5. Buffer、ArrayBuffer、DataView互转(node.js)

    1.Buffer转ArrayBuffer // 实例一 const buf = Buffer.from("this is a test"); console.log(buf); c ...

  6. SQLSetStmtAttr

    SQLSetStmtAttr 函数定义: Stmt是用来执行SQL语句的句柄,这个函数是用来设置她的属性的 SQLRETURN SQLSetStmtAttr( SQLHSTMT     , 这是由游标 ...

  7. 强化学习--QLearning

    1.概述: QLearning基于值函数的方法,不同与policy gradient的方法,Qlearning是预测值函数,通过值函数来选择 值函数最大的action,而policy gradient ...

  8. c++读入优化

    对于输入数据非常大的一些可(变)爱(态)题目,scanf就会大大拖慢程序的运行速度,cin就更不用说了,所以我们要用一种高大上的东西——读入优化. 读入优化的原理其实就是一个一个字符的读入,再组成数字 ...

  9. C++的类型转换

    一.类型转换名称和语法 1.C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a    2.C++风格的类型转换提供了4种类型转换操作符来应对 ...

  10. 设计模式之Flyweight(享元)(转)

    Flyweight定义: 避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类). 为什么使用? 面向对象语言的原则就是一切都是对象,但是如果真正使用起来,有时对象数可能显得很庞大, ...