1.将函数作为返回值
def lazy_sum(*args):
def sum():
ax = 0
for n in args:
ax = ax + n
return ax
return sum
#进行调用
f = lazy_sum(1, 3, 5, 7, 9)
f()
2.使用匿名函数,前面的x: 其实就是参数
lambda x:x*x
相当于
def f(x):
return x*x
def build(x, y):
return lambda: x * x + y * y
print(build(20,2)())
3.获取函数对象的名字
build.name
4.类型转化
>>> int('12345')
12345
但int()函数还提供额外的base参数,默认值为10。如果传入base参数,就可以做N进制的转换:
>>> int('12345', base=8)
5349
>>> int('12345', 16)
74565
functools.partial就是帮助我们创建一个偏函数的,不需要设置base的函数:
>>> import functools
>>> int2 = functools.partial(int, base=2)
>>> int2('1000000')
64
>>> int2('1010101')
85
5.这个私有的方法,使用_或者是__
def _private_1(name):
return 'Hello, %s' % name
def _private_2(name):
return 'Hi, %s' % name
def greeting(name):
if len(name) > 3:
return _private_1(name)
else:
return _private_2(name)
print(greeting("啦啦"))
6.对象的使用
class Student(object):
#这应该是构造器 第一个参数self表示的就是自身
def __init__(self,name):
self.name=name
def print_score(self):
print("%s" %(self.name))
bart = Student('Bart Simpson')
lisa = Student('Lisa Simpson')
bart.print_score()
lisa.print_score()