已采纳回答 / 慕仰0186287
兄弟,你缩进有问题, __str__在__init__的缩进里,所以编译器把__str__当成在__init__中定义的函数了python对缩进很严格的。。。
2019-08-30
已采纳回答 / 慕哥1930468
我理解的,因为python的对象是可动态扩充属性的,你看一下__slots__这一节:<...图片...>所以如果添加了__slots__语句,就不可扩充属性了,就不会出现你说的问题:<...图片...>
2019-08-28
已采纳回答 / 天很蓝zpf
因为当你把g函数去掉,只保留return j*j 后,f 函数返回的就是一个int,那么fs这个集合就是int集合,那么count()方法返回的就是int集合,所以此时f1、f2、f3都是int,无法print f1(),就会报这个错: 'int' object is not callable
2019-08-21
已采纳回答 / 天很蓝zpf
此处把s用作逻辑“与”运算,与运算两边的表达式都是布尔类型,True或者False,在python里面如果s是整数0,空值None,空字符串'',空集合( )都会被判定为False。单单一个len(s.strip())>0只能用于判断是否空字符串'',但0、空值none、空集合( )都用不了s.strip(),所以,将s放在and前面可以先过滤,当s是整数0,空值None,空字符串'',空集合( )时判定为False,那么and运算这时就“短路”直接返回False,当s是' '这种字符串时,s...
2019-08-21
已采纳回答 / 僵小虎
class Person(object): def __init__(self, name, score): self.name = name self.__score = score p = Person('Bob', 59) print p.name try: print p.__score except AttributeError: print 'attribute error'
2019-08-02
已采纳回答 / 拥抱每天最早的阳光
L2 = sorted(L1,lambda p1, p2: cmp(p1.name, p2.name))中的p1和p2并不是指的上面的实例p1和p2<...code...>相当于一个函数,函数中的p1和p2就是函数的参数,拿出来可能会比较好理解<...code...>即<...code...>
2019-08-01
已采纳回答 / 拥抱每天最早的阳光
当执行factorial(10)时,会先去执行注解,也就是@performance('ms')。因为带参数,所以会先执行def performance(unit),把字符串ms传到unit,然后会再把被注解的函数作为参数执行def perf_decorator(f),至此注解...
2019-07-30
已采纳回答 / Run1fast
import time def performance(f): #3333333333扔到这来 def fn(*args, **kw): #5555555555这里取传入函数的参数 t1 = time.time() #6666666666记录当前时间 r = f(*args, **kw) #...
2019-07-29