Python中关于列别生成式的奇怪现象

a = 4
b = 4
class A:
    a = 2
    b = 2
    arr = [[0 for i in range(a)] for j in range(b)]
A = A()
print(A.arr)

得到的结果为[[0, 0, 0, 0], [0, 0, 0, 0]]
为啥a取到全局的值,而b取到局部的值?

#笔试##笔试题目##秋招##Python#
全部评论
Python 3.x 的列表推导、生成器表达式、集合(set)推导和字典(dict)推导都有自己的局部作用域。 而 Python2.x 中没有。 所以上面的代码在 Python2.x 的输出结果是 [[0, 0], [0, 0]].
1 回复 分享
发布于 2021-09-15 11:07
有答案了踢我一下
点赞 回复 分享
发布于 2021-09-08 00:45

相关推荐

2024-12-07 21:21
东北大学 Java
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务