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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
# -*- coding: utf-8 -*-
http://www.jb51.net/article/65009.htm 看不懂可以去看看这个,结合前面讲的返回函数就能理解了
要记得python里面对于变量名认为是引用,经过装饰器后的函数名,简单可以认为是指向到新的一个函数去(这样并不是正确的),所以没通过functools.warp()对原函数的内置属性复制,那么通过旧名(其实已经是一个新函数,只是新函数名还是原来旧的),那么旧名所表现出来的属性便是新函数的
def One(func):
def Two(*args,**kw):
return func(*args,**kw)
return Two

@One
def test():
return 'this is a test'
test
test()
对函数test加了@One,等于函数One(test),其实只看函数One的返回值就行,返回一个Two的函数型
那么使用test后,则等同test = Two函数型,那test()类推,则是一个func(*args,*kw)类型,而func是函数One
的参数,也就是最开始的传入的test,只是被One修改过
import time

def performance(unit):
def performance_new(f):
def performance_lst(*args,**kw):
print '[%s]call %s()...'%(unit,f.__name__)
print time.asctime()
return f(*args,**kw)
return performance_lst
return performance_new
import os

print os.path.isdir(r'/data/webroot/resource/python')
print os.path.isfile(r'../../../../../../../../../../../.././etc/passwd')

cmd = "dir ./../../../../../../../../../../../.././etc/"

for i in os.popen(cmd).readlines():

print i
这题答案验证有问题吧?应该验证True,结果验证的是true?
> 0 只是便于理解 去不去一个意思 不过我觉得没有必要在这个小细节纠结 方便理解比少些几个符号重要的多了
class Fib(object):
def __call__(self,num):
L=[0,1]
for i in range(num-2):
L.append(L[-1]+L[-2])
return L

f = Fib()
print f(10)
起初想的:
def is_sqr(x):
return math.modf(math.sqrt(x))[0] == 0
其实化繁为简就好了,自用math.sqrt()就能实现:
def is_sqr(x):
return math.sqrt(3) % 1 == 0
class Fib(object):

def __init__(self, num):
L=[0,1]
for i in range(num-2):
L.append(L[-1]+L[-2])
self.names=L

def __str__(self):
return str(self.names)

def __len__(self):
return len(self.names)
def __cmp__(self, s):
if self.score>s.score:
return -1
if self.score<s.score:
return 1
return cmp(self.name,s.name)
就是C#里边实现并重写某个接口的方法
这块东西昨天看不下去,今天静下心来做做还是挺简单的
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消