python之路——23
复习
1.类定义
函数--方法--动态属性
必须传self
变量--类属性--静态属性
__init__方法--初始化方法
2.实例化
1.使用:对象 = 类()
2.实例和对象没有区别
3.对象调用方法
学习内容
1.类中的静态变量,可以被对象和类调用
2.对于不可变数据类型,类变量最好用类名操作
3.对于可变数据类型,对象名的修改是共享的,重新赋值是独立的
4.认识绑定方法
5.面向对象的三大特性:继承,多态,封装
6.组合: 一个对象的属性值是另一个类的对象
代码区
1.正方形周长和面积
class Square:
def __init__(self,side_len):
self.side_len = side_len
def perimeter(self):
return self.side_len * 4
def area(self):
return self.side_len **2
2.创建一个类,每次实例化时,纪录实例信息
class Food:
catagory = {}
def __init__(self,kind,calorie):
self.kind = kind
self.calorie = calorie
Food.catagory.setdefault(self.kind, self.calorie)
a1 = Food('carrot',110)
a2 = Food('meat',1000)
print(a1.catagory)
print(Food.catagory)
3.圆环面积周长,组合的方式
from math import pi
class Circle:
def __init__(self,radius):
self.radius = radius
def area(self):
return self.radius**2*pi
def perimeter(self):
return 2*pi*self.radius class Ring:
def __init__(self,outside_r,inside_r):
self.outside_r = outside_r
self.inside_r = inside_r
self.outside_c = Circle(outside_r)
self.inside_c = Circle(inside_r)
def area(self):
return self.outside_c.area() - self.inside_c.area()
def perimeter(self):
return self.outside_c.perimeter() + self.inside_c.perimeter() r1 = Ring(2,1)
4.老师-生日 类的组合
import time
class Teacher:
def __init__(self,name,age,birthday):
self.name = name
self.age = age
self.birthday = birthday
self.course = Course('language',2000)
class Birthday:
def __init__(self,year,month,day):
self.year = year
self.month = month
self.day = day
class Course:
def __init__(self,name,price):
self.name = name
self.price = price b1 = Birthday(2111,2,1)
a1 = Teacher('alex', 'Language',b1)
print(a1.birthday.year)
print(a1.course.price)
python之路——23的更多相关文章
- 【python之路23】递归
1.递归的基础 举例说明:老师要班里坐在最后的一排学生要一本书,老师对前面的人说你向最后一排的同学要一本书,那么最前面的人跟坐在第2排的人说,第2排的人跟第3排的人说,当命令传递到最后一排时,最后一排 ...
- Python之路【第一篇】python基础
一.python开发 1.开发: 1)高级语言:python .Java .PHP. C# Go ruby c++ ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...
- Python之路【第十九篇】:爬虫
Python之路[第十九篇]:爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用 ...
- Python之路【第十八篇】:Web框架们
Python之路[第十八篇]:Web框架们 Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Pytho ...
- Python之路【第十七篇】:Django【进阶篇 】
Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...
- Python之路【第十六篇】:Django【基础篇】
Python之路[第十六篇]:Django[基础篇] Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了O ...
- Python之路【第十五篇】:Web框架
Python之路[第十五篇]:Web框架 Web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 1 2 3 4 5 6 ...
- Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用 ...
- Python之路【第八篇】:堡垒机实例以及数据库操作
Python之路[第八篇]:堡垒机实例以及数据库操作 堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient ...
随机推荐
- Altium Designer 10如何导出SMT加工信息和BOM元件清单
要委托工厂进行SMT加工,需要向工厂提供表贴元器件的位置信息(Pick Place),这些信息可以由csv保存下来. 步骤如下: 一.设定坐标原点,一般设为板子左下角,在Keepout划线的顶点处. ...
- Debian系统 + XFCE桌面初识,基础环境搭建
有幸分享个人的Linux下的习惯配置,具体操作可能阐述得比较粗糙. 在图形化界面进行配置操作,十分简便舒心. Linux发行版:Debian9.5(Stretch) 桌面Sesion:XFCE4 一. ...
- 六、Django模型基础第一节
1 数据库的连接配置 django 连接mysql的配置流程: 安装 pymysql pip install pymysql 创建数据库用户 '; grant all on *.* to 'xiang ...
- C语言权威指南和书单 - 适用于所有级别
注:点击标题免费下载电子书 所有级别 1. The C Programming Language (2nd Edition) 2. C: A Reference Manual (5th Edition ...
- 关于matlab中画图放大局部细节的问题
1)需要用得到一个matnify.m文件,下载地址magnify 2)接下来就是如何使用magnify的问题,参见使用 只是在“使用”中的第二步之前首先要用cd进入magnify所在位置.
- Python入门 (一)
本文是个人python学习笔记,学习资料为廖雪峰python教程,如需更多内容,请移步廖老师官方网站. 一 安装 官网下载安装包安装,安装好之后,在命令提示符输入python进入Python交互模式: ...
- 1.继承(extends)、超类(superClass)、子类(subClass)
注意:继承主要使用的is-a关系 在子类中用一个新的方法来覆盖超类中的方法(override),需要注意的是如果子类之中的方法或者域 被覆盖时,仍然想访问superClass中的方法和域,此时必须使 ...
- mysql 两张表的数据设置主外健关联删除
image_group 主表 image 副表 alter table image add constraint fk_group_idforeign key (group_id)references ...
- QT+VS2013 * 获取网络时间
使用qt函数获取网络时间 现在Qt Project Setting中的Qt Modules勾选NetWork,再导入头文件我也忘了叫什么了 QStringList net_time; QTcpSock ...
- Python之进度条及π的计算
Python之进度条及π的计算 文本进度条 1. 简单的开始 这是利用print()函数来实现简单的非刷新文本进度条.它的基本思想是按照任务执行百分比将整个任务划分为100个单位,每执行N%输出一次 ...