讲解中的例子:
def who_am_i(x):
print x.whoAmI()
“ print x.whoAmI()“中的“print”,应该改为“return”吧。不然会打印很多None。改为“return”后就不会打印出“None”了。
def who_am_i(x):
print x.whoAmI()
“ print x.whoAmI()“中的“print”,应该改为“return”吧。不然会打印很多None。改为“return”后就不会打印出“None”了。
2017-09-07
可以理解@为当前函数目的地,比如定义factorial()前加了@log,那么只要我调用factoria函数,它就自动去搜寻log并把自己传入log函数。而类似log这种装饰器就是加了自动寻径的高阶函数嘛,里面装的就是你要重复利用的代码块。
2017-09-07
这两个是python中的可变参数。*args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个dict。并且同时使用*args和**kwargs时,必须*args参数列要在**kwargs前
2017-09-07
import math
def add(x, y, f):
return f(x) + f(y)
print add(25, 9,math.sqrt)
def add(x, y, f):
return f(x) + f(y)
print add(25, 9,math.sqrt)
2017-09-06
难道我不会自己创建这两个文件吗?
import os
os.system('mkdir /data/webroot/resource/python')
os.system('touch /data/webroot/resource/python/test.txt')
print os.path.isdir(r'/data/webroot/resource/python')
print os.path.isfile(r'/data/webroot/resource/python/test.txt')
import os
os.system('mkdir /data/webroot/resource/python')
os.system('touch /data/webroot/resource/python/test.txt')
print os.path.isdir(r'/data/webroot/resource/python')
print os.path.isfile(r'/data/webroot/resource/python/test.txt')
2017-09-06
通过系统命令查看 路径文件是否存在:os.system('cat /data/webroot/resource/python')
反馈提示该文件不存在:<pre>cat: /data/webroot/resource/python: No such file or directory
反馈提示该文件不存在:<pre>cat: /data/webroot/resource/python: No such file or directory
2017-09-06
# -*- coding: utf-8 -*-
def __init__(self, name, score):
self.__score = score
self.name = name
def get_grade(self):
if self.__score >= 80:
return 'A-优秀'
elif self.__score >= 60:
return 'B-及格'
else:
return 'C-不及格'
def __init__(self, name, score):
self.__score = score
self.name = name
def get_grade(self):
if self.__score >= 80:
return 'A-优秀'
elif self.__score >= 60:
return 'B-及格'
else:
return 'C-不及格'
2017-09-06
像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。
闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。举例如下:
闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。举例如下:
2017-09-05
def reductFraction(self,dividend,divisor):
i=2;
while i <= math.sqrt(divisor) or i>=2: #
if divisor%i==0 and dividend%i==0:
divisor/=i
dividend/=i
i=2
i+=1
return [dividend,divisor]
i=2;
while i <= math.sqrt(divisor) or i>=2: #
if divisor%i==0 and dividend%i==0:
divisor/=i
dividend/=i
i=2
i+=1
return [dividend,divisor]
2017-09-05