-
像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。
查看全部 -
def reversed_cmp(x, y): if x > y: return -1 if x < y: return 1 return 0
查看全部 -
为什么不能直接写return len(s.strip())>0
None类型没有strip方法,执行会报错。前面加s,当s为None时,执行到and前面已经可以判定为False,and后的部分就不会被执行了。
查看全部 -
try:
import json#尝试加入某模块
except imoprterror:#抓取到模块加入失败
import simplejson#失败的话就来加入这个模块吧
查看全部 -
1、isinstance(a,b):判断a是否是b类型
2、一个实例可以看成它本身的类型,也可以看成它父类的类型。
查看全部 -
super(当前类,self).__init__(共有的参数)初始化父类
查看全部 -
一定要用 super(Student, self).__init__(name, gender) 去初始化父类,否则,继承自 Person 的 Student 将没有 name 和 gender。
函数super(Student, self)将返回当前类继承的父类,即 Person ,然后调用__init__()方法,注意self参数已在super()中传入,在__init__()中将隐式传递,不需要写出(也不能写)。
查看全部 -
通过标记一个 @classmethod,该方法将绑定到 Person 类上,而非类的实例。类方法的第一个参数将传入类本身,通常将参数名命名为 cls,上面的 cls.count 实际上相当于 Person.count。
查看全部 -
直接把 lambda 函数赋值给 self.get_grade 和绑定方法有所不同,函数调用不需要传入 self,但是方法调用需要传入 self。
因为方法也是一个属性,所以,它也可以动态地添加到实例上,只是需要用 types.MethodType() 把一个函数变为一个方法:
查看全部 -
一个实例的私有属性就是以__开头的属性,无法被外部访问,那这些属性定义有什么用?
虽然私有属性无法从外部访问,但是,从类的内部是可以访问的。除了可以定义实例的属性外,还可以定义实例的方法。
实例的方法就是在类中定义的函数,它的第一个参数永远是 self,指向调用该方法的实例本身,其他参数和一个普通函数是完全一样的:
查看全部 -
当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问。
查看全部 -
绑定在一个实例上的属性不会影响其他实例,但是,类本身也是一个对象,如果在类上绑定一个属性,则所有实例都可以访问类的属性,并且,所有实例访问的类属性都是同一个!也就是说,实例属性每个实例各自拥有,互相独立,而类属性有且只有一份。
查看全部 -
如果一个属性以"__xxx__"的形式定义,那它又可以被外部访问了,以"__xxx__"定义的属性在Python的类中被称为特殊属性,有很多预定义的特殊属性可以使用,通常我们不要把普通属性用"__xxx__"定义。
以单下划线开头的属性"_xxx"虽然也可以被外部访问,但是,按照习惯,他们不应该被外部访问。
查看全部 -
@装饰器的过程就是 f=decorator(f)
带参数的装饰器就是
f=decorator(需要的参数)(f)
查看全部 -
创建实例使用 类名+(),类似函数调用的形式创建
查看全部
举报