python内置函数——enumerate()和call()

enumerate()

seq = ['a','b','c','d']
i = 0
#普通的for循环
for element in seq:
    print(element)
    i= i+1
    
#用enumerate的for循环
for i,element in  enumerate(seq):
    print(element)


说白了就是用enumerate可以自动带索引号。
再如:

seasons = ['Spring', 'Summer', 'Fall', 'Winter']
list(enumerate(seasons))

> [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]

list(enumerate(seasons, start=1))       # 下标从 1 开始
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

语法:
enumerate(sequence, [start=0])
sequence – 一个序列、迭代器或其他支持迭代对象。
start – 下标起始位置

call()

python中一切皆对象,而函数属于可调用对象。是否是可调用对象,可以用callable来判断。
将一个普通的类变成可调用的方法是,加一个call函数即可。
如:

class Person(object):
    def __init__(self, name, gender):
        self.name = name
        self.gender = gender

    def __call__(self, friend):
        print ("My name is {}".format(self.name))
        print ('My friend is {}'.format( friend))

person = Person("xiaoliu","male")
person("xiaogao") #此时自动调用了__call__函数

> My name is xiaoliu
> My friend is xiaogao
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值