复习

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. input type file兼容性

    input  中的type  file类型  在ie10及以上还算正常,在ie9中你就找不到他在哪了 解决此类的问题就需要巧妙的运用的css   以及input 了 需要两个input配合来写,一个i ...

  2. JavaScript·cookie

    1.什么是cookie 页面用来保存信息 ,比如自动登录.记住用户名 JS中使用cookie:docucment.cookie 2.cookie的使用

  3. ---————for循环打印爱心

    //打印爱心public class Xin{ public static void main (String [] args){ for(int i=1;i<=4;i++){ for(int ...

  4. Request对象和Response对象 JsonResponse对象 和 Django shortcut functions 和QueryDict对象

    request request属性 属性: django将请求报文中的请求行.头部信息.内容主体封装成 HttpRequest 类中的属性. 除了特殊说明的之外,其他均为只读的. ''' 0.Http ...

  5. 海思hi3516 ive运动目标检测简单实现

    在做车牌识别项目,通过先对识别区域内进行目标识别,能降低CPU的占用率,在检测到有运动目标的时候,再做车牌识别. //图像差分 s32Ret = HI_MPI_IVE_Sub(&IveHand ...

  6. 元组tuple 可迭代对象

    1. 字符串.元组和列表相互转化 s = 'abcdef' li = ['a','b','c','d'] tu = (1,2,4,9) v = tuple(s) print('v = ',v) w = ...

  7. 深入理解Python字符编码

    不论你是有着多年经验的 Python 老司机还是刚入门 Python 不久,你一定遇到过UnicodeEncodeError.UnicodeDecodeError 错误,每当遇到错误我们就拿着 enc ...

  8. iview中,table组件在缩进时产生的bug。

    问题描述: 在父元素因为缩进的关系撑开时,table组件不会因为父元素的撑开而自适应,问题如图 解决办法:在父一级的组件中使用table {width: 100% !important},强制使表格宽 ...

  9. 数字特征值-java

    题目内容: 对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值.对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推.这个整数在第n位上的数字记作x,如果x和n的奇偶性相 ...

  10. QT5.10+VS2013 TCP 一对一简单C/S架构通信

    ---恢复内容开始--- QT~俺老孙又回来啦~ 买的那本书上面关于tcp的内容就七八页,而且都是过于简单的东西,想进一步就要度娘很久很麻烦,还是喜欢看书(嘿嘿嘿~) 大致的思路就是两个项目,一个cl ...