1,一个函数的结尾一定要有返回值:return(或者其他返回值)
2,装饰器实际上还是闭包的内容,只不过是装饰下面的函数,然后在返回原来的闭包来执行,不调用参数就不执行
3,r = f(*args,**kw),而不是r = fn(*args,**kw),因为r要从参数的外部调用参数,如果从函数fn(内部函数)调用参数,将会返回错误
3,实在不理解就多写几遍
2,装饰器实际上还是闭包的内容,只不过是装饰下面的函数,然后在返回原来的闭包来执行,不调用参数就不执行
3,r = f(*args,**kw),而不是r = fn(*args,**kw),因为r要从参数的外部调用参数,如果从函数fn(内部函数)调用参数,将会返回错误
3,实在不理解就多写几遍
2016-05-09
最赞回答 / 桉树
一个函数可以有参数传入,那么就会有形如p = fit(20)的代码,但是你以为p只是一个实例?no!p还可以是一个函数!怎么使用呢?这个时候就可以直接这样写:print p(100),如此,就使用了p的闭包函数
2016-05-08
已采纳回答 / Bette_man
lambda是一个匿名函数,x,y是他的参数,x*y是他的返回值,按着你下面那么写的话,函数只使用以此所以用匿名函数可以节省内存中定义变量的空间,而且能是程序更简洁
2016-05-08
class Person(object):
def __init__(self, name, gender, **kw):
self.name = name
self.gender = gender
p = Person('Bob', 'Male')
setattr(p, 'age', 18)
setattr(p, 'course','Python' )
print p.age
print p.course
def __init__(self, name, gender, **kw):
self.name = name
self.gender = gender
p = Person('Bob', 'Male')
setattr(p, 'age', 18)
setattr(p, 'course','Python' )
print p.age
print p.course
2016-05-07
class Person(object):
__count = 0
@classmethod
def how_many(cls):
print cls.__count
cls.__count += 1
print cls.__count
def __int__(self,name):
self.name = name
print Person.how_many()
p1 = Person('Bob')
print Person.how_many()
__count = 0
@classmethod
def how_many(cls):
print cls.__count
cls.__count += 1
print cls.__count
def __int__(self,name):
self.name = name
print Person.how_many()
p1 = Person('Bob')
print Person.how_many()
2016-05-07
def __init__(self, name, score):
self.name = name
self.__score = score
def get_grade(self):
if self.__score >80:
print 'A'
elif self.__score >= 60:
print 'B'
else:
print 'C'
self.name = name
self.__score = score
def get_grade(self):
if self.__score >80:
print 'A'
elif self.__score >= 60:
print 'B'
else:
print 'C'
2016-05-06