更习惯这种写法:
def is_odd(x):
return x % 2 == 1
item =filter(is_odd, [1, 4, 6, 7, 9, 12, 17])
print(item)
def is_odd(x):
return x % 2 == 1
item =filter(is_odd, [1, 4, 6, 7, 9, 12, 17])
print(item)
2022-04-17
def format_name(s):
return s.title()
item = map(format_name, ['alice', 'BOB', 'CanDY'])
print(item)
这样也行,更容易理解。很奇怪,答案中为什么没有报错,还是不理解python运行的内部机制
return s.title()
item = map(format_name, ['alice', 'BOB', 'CanDY'])
print(item)
这样也行,更容易理解。很奇怪,答案中为什么没有报错,还是不理解python运行的内部机制
2022-04-17
它这也是要实例化之后才能使用的,跟直接定义一个方法,然后访问p.calls()有何不同?实际使用场景是什么呢?
2022-03-18
后面的例子可以理解成:
调用count()时给fs这个list每个位置都赋值了一个 i*i的函数,但因为返回值是函数f本身所以并没有调用,即fs = [i*i, i*i, i*i],此时里面的i并不表示实际值;当count()被调用完后for循环里的i已经到3,所以当调用fs这个list内的函数f1/f2/f3时都计算i*i,此时i代入3,所以三个结果都为9。
调用count()时给fs这个list每个位置都赋值了一个 i*i的函数,但因为返回值是函数f本身所以并没有调用,即fs = [i*i, i*i, i*i],此时里面的i并不表示实际值;当count()被调用完后for循环里的i已经到3,所以当调用fs这个list内的函数f1/f2/f3时都计算i*i,此时i代入3,所以三个结果都为9。
2022-02-15
class Animal:
__count=0
def __init__(self,name):
self.name=name
Animal.__count+=1
@classmethod
def get_count(self):
return self.__count
dog=Animal('liu')
print(dog.get_count())
cat=Animal('wang')
print(cat.get_count())
__count=0
def __init__(self,name):
self.name=name
Animal.__count+=1
@classmethod
def get_count(self):
return self.__count
dog=Animal('liu')
print(dog.get_count())
cat=Animal('wang')
print(cat.get_count())
2022-02-11
def f(x):
return x.title
for item in map(f, ['alice', 'BOB', 'CanDY']):
print(item)
return x.title
for item in map(f, ['alice', 'BOB', 'CanDY']):
print(item)
2022-01-10
Traceback (most recent call last):
File "index.py", line 27, in
print(r1 / r2)
TypeError: unsupported operand type(s) for /: 'Rational' and 'Rational'
本节的代码运行错误,提示地板除的那一行报错,/没有定义,把__truediv__改成__div__运行正确
File "index.py", line 27, in
print(r1 / r2)
TypeError: unsupported operand type(s) for /: 'Rational' and 'Rational'
本节的代码运行错误,提示地板除的那一行报错,/没有定义,把__truediv__改成__div__运行正确
2022-01-06