Python如何知道变量的数据类型?

时间:2016-02-29 12:43:23

标签: python python-2.7 python-3.x

例如,我正在迭代字典mydict,如下所示:

mydict = {"Name" : "Vincent Vega",
          "Profession" : "Gangster",
          "Age" : "42"}

for k in mydict:
    print k, mydict[k]

现在,k只是一个我甚至没有声明的循环变量。编译器如何知道k,我的意思是字典的键?

2 个答案:

答案 0 :(得分:6)

for语句在对象上使用特殊方法(__iter__next),此处为mydict

每次迭代都会产生一个结果,存储在变量k

对于字典,__iter__方法返回字典的键。

更多信息here

答案 1 :(得分:1)

for循环在循环的序列上调用iter(),并对结果使用next()次调用。
 不同的对象可以返回具有不同行为的不同迭代器,这就是为什么你会一次看到它迭代字典的键,另一次是数组的索引,这取决于iterable。