是否需要初始化值才能在for循环中使用?

时间:2018-10-04 14:44:05

标签: python scope variable-declaration

我正在学习c ++,我们的教授希望我们了解我们学到的东西是否会/不会在其他语言中起作用。

以下代码将以python打印出来吗 “我爱我的狗……”(对于每个数组实例) 和 “我最喜欢的狗是杰克” 还是只是后者?

List<PlanRecoveryStrategy> deletePlanRecoveryStrategies(List<PlanRecoveryStrategies> listToDelete);

在c ++中,如果未声明pets = ['flufffy', "jack", 'larry'] for a in pets: print "I love my dog %s" % a print "My favourite dog is %s" % pets[1] ,则如果mi正确,则循环将无法正确编译/运行。

1 个答案:

答案 0 :(得分:2)

在Python中,赋值包括隐式声明(只是声明仅表示“名称存在”,并且不强制使用静态类型)。

for a in pets:

可以正常工作(因此,您期望的所有行都会被打印出来,无论您出于何种原因,都不会跳过该循环),因为for循环会分配给a,并隐式声明。不同于C ++,需要声明std::string a(在循环之前或循环中)或auto a(在循环中)来声明a存在已知类型

需要明确的是,C ++仅需要声明a (并且可以在循环本身中完成,例如for (const auto& a : pets) {),而不具体是初始化,以使循环正常工作。