-
方法是一个属性,它也可以动态地添加到实例上,只是需要用 types.MethodType() 把一个函数变为一个方法
直接把 lambda 函数赋值给 self.get_grade 和绑定方法有所不同,函数调用不需要传入 self,但是方法调用需要传入 self。
查看全部 -
实例的方法就是在类中定义的函数,它的第一个参数永远是 self,指向调用该方法的实例本身,其他参数和一个普通函数是完全一样的
在实例方法内部,可以访问所有实例属性,这样,如果外部需要访问私有属性,可以通过方法调用获得,这种数据封装的形式除了能保护内部数据一致性外,还可以简化外部调用的难度
查看全部 -
当实例属性和类属性重名时,实例属性优先级高. 在实例上修改类属性,它实际上并没有修改类属性,而是给实例绑定了一个实例属性
查看全部 -
实例属性每个实例各自拥有,互相独立,而类属性有且只有一份.对一个实例调用类的属性也是可以访问的,所有实例都可以访问到它所属的类的属性
查看全部 -
Python对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(__),该属性就无法被外部访问
如果一个属性以"__xxx__"的形式定义,那它又可以被外部访问了,以"__xxx__"定义的属性在Python的类中被称为特殊属性,有很多预定义的特殊属性可以使用,通常我们不要把普通属性用"__xxx__"定义
查看全部 -
1. reduce()函数,也是一个函数f,一个list,但是reduce()传入的函数f必须接受两个参数,对list每个元素反复调用函数f,并返回最终结果值
eg. def f(x, y):
return x + y
print reduce(f, [1,3,5])
9
2. reduce()好可以接受第三个可选参数作为计算的初始值
eg. reduce(f, [1, 3, 5], 100)
109
计算初始值和第一个元素:f(100, 1),结果为101
查看全部 -
1. map()函数,他接受一个函数f和一个list,并通过把函数f依次作用到list每个元素上,得到一个新的list并返回
eg. def f(x):
return x*x
print map(f, [1, 2, 3])
[1, 4, 9]
查看全部 -
1. 变量可以指向函数
2. 函数名其实就是指向函数的变量
3. 高阶函数:能就收函数作为参数的函数
查看全部 -
1. 函数式:functional,一种编程范式
2. 特点:a. 把计算视为函数而非指令
b. 纯函数式编程:不需变量,没副作用,测试简单
c. 支持高阶函数,代码简洁
3. python支持的函数式编程
a. 不是纯函数式编程:允许有变量
b. 支持高阶函数:函数也可作为变量传入
c. 支持闭包:有了闭包就能返回函数
d. 有限度地支持匿名函数
查看全部 -
1、当创建实例时,__init__()方法被自动调用,__init__() 方法的第一个参数必须是 self(也可以用别的名字,但建议使用习惯用法),后续参数则可以自由指定,和定义函数没有任何区别。
2、kw是字典,iteritems()用于遍历字典kw,而setattr(self, k, v)就等价于self.k = v
setattr(self,k,v) 是相当于self.k = v
官方文档内容:setattr(object, name, value)
查看全部 -
高阶函数sorted()和匿名函数lambda
查看全部 -
1、类通过 class 关键字定义
2、按照 Python 的编程习惯,类名以大写字母开头,紧接着是(object)
3、创建实例使用 类名+(),类似函数调用的形式创建
查看全部 -
当新版本的一个特性与旧版本不兼容时,该特性将会在旧版本中添加到__future__中,以便旧的代码能在旧版本中测试新特性。
查看全部 -
1、try:
1
except XxxError:
2
语句的意思是1失败的话,就执行2
2、import 1 as 12
没有直接的12,通过1导入12
查看全部 -
闭包概念的理解:
https://www.cnblogs.com/yssjun/p/9887239.html
https://www.bilibili.com/video/BV1JW411i7HR?from=search&seid=11069571595161770969
查看全部
举报