为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
functools.partial就是帮助我们创建一个偏函数的,不需要我们自己定义int2(),可以直接使用下面的代码创建一个新的函数int2:
def __cmp__(self, s):
if self.score!=s.score:
return s.score-self.score
else:
return cmp(self.name,s.name)
import json

class Students(object):
def __init__(self,list):
self.list=list
def read(self):
return self.list

L=r'["Tim","Bob","Alice"]'
s = Students(L)

print json.load(s)

已采纳回答 / zh_414
打印调用函数名称的语句,若f函数名为int,那么语句执行的结果为call int()__name__是函数名的一个属性,f.__name__即为只打印函数名,其余的就是print的语法了
@土老鳖 你的代码过不了啊
def count():
fs = []
for i in range(1, 4):
def f(i=i):
return i*i
fs.append(f)
return fs
f1, f2, f3 = count()
print f1(), f2(), f3()
这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。
dir()函数获取到的是实例对象的__dict__以及它的类对象的__dict__
def count():
fs = []
for i in range(1, 4):
def f(j):
def g():
return j*j
return g
r = f(i)
fs.append(r)
return fs
f=count()
print f[0](),f[1](),f[2]()
4大内置函数
Filter
>>> def f(x): return x % 2 != 0 and x % 3 != 0
>>> filter(f, range(2, 25))
Map
>>> def cube(x): return x*x*x
>>> map(cube, range(1, 11))
Reduce
>>> def add(x,y): return x + y
>>> reduce(add, range(1, 11))
lambda
(lambda x: x * 2)(3)
import math

def is_sqr(x):
return math.sqrt(x)==int(math.sqrt(x))

print filter(is_sqr, range(1, 101))
简单功能可以实现,但总觉得不够严谨

已采纳回答 / 温暖的骨头
下次提问请重点把标题写得清楚一点,标题尽量能够完整表达问题。这样别人才容易点进来回答你的问题。
收获挺大,感谢
这比喻很形象
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消