复习

1.python没有接口类,有抽象类, 通过abc模块
本质是用来做代码规范用的,在子类中实现和父类方法名完全一样的方法
2.在java的角度看,是有区别的
java没有多继承,为了接口隔离原则,设计了接口的概念,用以实现多继承
java本来就支持多继承,所以就有了抽象类 python 支持单继承与多继承,所以对于接口类和抽象类的区别不明显,
python 没有内置接口类
3.多态
python天生支持多态,
4.鸭子类型
不依赖父类的情况下,实现两个相似的类中的同名方法
5.封装
python中 __名字= 私有化
私有化后,不能从类的外部直接调用
静态属性、方法、对象属性,都可以私有化
这种私有化,只是从代码级别做了变形,并没有真的约束
__类名__名字 类外部调用, __名字 内部调用

学习内容

1.私有属性的用处
1.隐藏属性,不希望外部调用
2.保护属性1,不被随意改变
3.保护属性2,不被子类继承
2.property
内置装饰器函数,只在面向对象中使用
将方法伪装成属性
结合私有属性使用
配合setter deleter 使用
3.classmethod
类方法,修改类的私有类型静态属性
4.staticmethod
静态方法,完全面向对象编程中,一个函数与对象和类均无关,用其将函数伪装成静态方法
5.反射

代码区

from math import pi
class Circle:
discount = 10
def __init__(self, r, name):
self.r = r
self.__name = name
def haha(self):
print('jajaja')
return 'aaaa'
@property
def perimeter(self):
return 2*pi*self.r
@property
def area(self):
return self.r**2*pi
@property
def name(self):
return self.__name +'sb'
@name.setter
def name(self,new_name):
self.__name = new_name
@name.deleter
def name(self):
del self.__name c1 = Circle(5,'wang')
print(c1.area)
print(c1.name)
c1.name = 'li'
print(c1.name)
del c1.name
print(c1.discount)
c1.discount = 1
print(c1.discount)
ret = getattr(c1,'haha')
print(ret())

python之路——26的更多相关文章

  1. 【python之路26】字符串之格式化%和format

    Python基础之杂货铺   字符串格式化 Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式, ...

  2. 【python之路26】模块

    模块简介 一.time模块二.sys模块三.datetime模块四.pickle模块 五.json模块六.OS模块七.hashlib加密模块八.第三方模块的安装方法九.requests模块十.XML模 ...

  3. Python之路【第十九篇】:爬虫

    Python之路[第十九篇]:爬虫   网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用 ...

  4. Python之路【第十八篇】:Web框架们

    Python之路[第十八篇]:Web框架们   Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Pytho ...

  5. Python之路【第十七篇】:Django【进阶篇 】

    Python之路[第十七篇]:Django[进阶篇 ]   Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...

  6. Python之路【第十五篇】:Web框架

    Python之路[第十五篇]:Web框架   Web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 1 2 3 4 5 6 ...

  7. Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

    Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy   Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用 ...

  8. Python之路【第八篇】:堡垒机实例以及数据库操作

    Python之路[第八篇]:堡垒机实例以及数据库操作   堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient ...

  9. Python之路【第七篇】:线程、进程和协程

    Python之路[第七篇]:线程.进程和协程   Python线程 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元. 1 2 3 4 5 6 7 8 9 10 11 12 1 ...

随机推荐

  1. @RequestMapping、@ResponseBody和@RequestBody的使用

    使用SSM框架进行Web开发时,经常在Controller中遇到@RequestMapping.@ResponseBody和@RequestMapping注解. 1.@RequsetMapping注解 ...

  2. JAVA高级-面试题总结

    最近面试了一些公司,针对面试中遇到的问题在此记录,提升自己,造福大家 一.java源码相关 ArrayList创建和add等各种api使用原理 HashMap 的创建,put原理,和HashTable ...

  3. 十分钟搞定 pandas

    原文:http://pandas.pydata.org/pandas-docs/stable/10min.html 译者:ChaoSimple 校对:飞龙 官方网站上<10 Minutes to ...

  4. 关于indexof和substring经常记不住的点

    indexof 找到的字符位置是 字符串从0位开始算起的. lastIndexOf也一样,http://localhost:8080/aaa,的lastIndexOf("/")是2 ...

  5. 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contai

    之前一直使用的mysql5,突然换成8之后,有许多地方不一样,今天就碰到一个. 在使用sql语句创建表时,报错:  1055 - Expression #1 of ORDER BY clause is ...

  6. Linux学习第一天————了解root用户和基本的shell命令

    一.了解Linux中的root用户  1.1root用户 使用过MySQL的同学都知道MySQL中有一个变态的存在叫做超级管理员,他可以从操作任何一个数据库,那么在Linux中也有这么一个变态的存在他 ...

  7. Team416

    软件工程小组今天成立了! 成员:计科1704 杨璐华 俞天耀 杨通玉 王旭 分工:  项目经理: 杨璐华 需求分析: 俞天耀 运行维护: 杨通玉 软件架构: 王旭 我们团队关于此次软件工程项目的分工大 ...

  8. alsa音频播放过程中的基本概念

    以下为 ALSA-Project/FramesPeriods[1] 学习笔记 1, sample_rate: 即每秒进行多少次采样,常见的比如 8000.16000.44100和48000等 2, s ...

  9. c++函数总结

    1.strcpy(char *str1, char *str2) 作用:把str2的字符复制到str1,函数是C风格的函数. 注意事项:strcpy会从源地址一直往后拷贝,直到遇到'\0'为止,所以如 ...

  10. C#实现按键计算器功能

    C#实现按键计算器功能 (一次失败的编程) 界面: 代码如下: using System; using System.Collections.Generic; using System.Compone ...