在接触python时最开始接触的代码,取长方形的长和宽,定义一个长方形类,然后设置长方形的长宽属性,通过实例化的方式调用长和宽,像如下代码一样. class Rectangle(object): def __init__(self): self.width =10 self.height=20 r=Rectangle() print(r.width,r.height) 此时输出结果为10 20 但是这样在实际使用中会产生一个严重的问题,__init__ 中定义的属性是可变的,换句话说,是使用一个…
用法一: class Test(object): def __init__(self): # 私有化 self.__num = 100 #名字重整_Test__num def setNum(self,newNum): print("-----setter") self.__num = newNum def getNum(self): print("-----getter") return self.__num num = property(getNum,setNum…
注释:以下都是在python2.7版本验证的 总括:1.python解决二义性问题,经历了深度优先算法.广度优先算法.拓扑排序算法,目前python的版本都是使用拓扑算法(C3)    2.严谨super(A,self).__init__()和A.__init__(self)这两种调用类方法的方法混用 3.A.__init__(self)是经典类的调用方法,使用深度优先算法,不论是否有类继承object:也就是新式类也可以使用这种调用方法 4.super(A,self).__init__()是新…
一.单星号 * 采用 * 可将列表或元祖中的元素直接取出,作为随机数的上下限: import random a = [1,4] print(random.randrange(*a)) 或者for循环输出: import random a = [1,4] for i in range(*a): print(i) ''' result : 1 2 3 ''' 二.双星号 ** 双星号 ** 可将字典里的"值"取出,如下例 class Proxy(object): def __init__(…
一.课前内容回顾 继承作用:提高代码的重用性(要继承父类的子类都实现相同的方法:抽象类.接口) 继承解释:当你开始编写两个类的时候,出现了重复的代码,通过继承来简化代码,把重复的代码放在父类中. 单继承: 重用性:减少代码的重复,子类可以复用父类的方法 派生:子类在父类的基础上又创建了自己的新的方法和属性 子类中有父类的同名方法:只用子类的 还希望用到父类中的方法:父类名(self,...).super(...)调用 抽象类:只能被继承,不能被实例化 模板.规则 抽象类的模板: from abc…
参考 http://openhome.cc/Gossip/Python/Property.html http://pyiner.com/2014/03/09/Python-property.html 在Python中property()是一个内建函数,创建并返回一个property对象.函数的定义如下. property(fget=None, fset=None, fdel=None, doc=None) fget是获取属性的值的函数,fset是设置属性值的函数,fdel是删除属性的函数,doc…
python property 在2.6版本中,添加了一种新的类成员函数的访问方式--property. 原型 class property([fget[, fset[, fdel[, doc]]]]) fget:获取属性 fset:设置属性 fdel:删除属性 doc:属性含义 用法 1.让成员函数通过属性方式调用 class C(object): def __init__(self): self._x = None def getx(self): return self._x def set…
Python 数据类型及其用法: 本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁. 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点型以及布尔类型.这些基本数据类型组成了基本控制块,从而创建我们的Python应用程序. 字符串 字符串(String) 是一段文本字符,通常以某种形式向用户输出.如果我们打开Python的解释器,我们试着最常见的输出"Hello World!"应用: >>> print…
写之前随便百度了一下博客,又看到廖雪峰的博客了.果然置顶的能力很强. 我想说其实property的用法并不是主要用来做类型检查.反而更多应该是用于简化操作的目的. 写之前想聊一个古老的话题.年初的时候刚接触flask.当时用SQLAlchemy的Model模型去构建了一张表.在刚入门的时候,觉得仅仅是不用写SQL这么一回事 现在看来,其实SQLAlchemy的用法隐含的思想是将一个表抽象为一个对象,或者一个实体.对于实体的内容进行解读.数据库只是作为存放内容的工具而已. 初学的时候,后端要返回数…
这只是我的个人理解: 在Python的函数中偶尔会看到函数定义的上一行有@functionName的修饰,当解释器读到@的这样的修饰符之后,会先解析@后的内容,直接就把@下一行的函数或者类作为@后边的函数的参数,然后将返回值赋值给下一行修饰的函数对象. 比如: @a @b def c(): … python会按照自下而上的顺序把各自的函数结果作为下一个函数(上面的函数)的输入,也就是a(b(c())) def funcA(A): print("function A") def func…