7
>>> x = 'foo'
>>> {0: locals().get('x')}
{0: 'foo'}
>>> {0: locals().get('x' + spam) for spam in ['']}
{0: None}
Lý do cho sự khác biệt này trong hành vi là gì?Phạm vi Python trong dict comprehension
>>> x = 'foo'
>>> {0: locals().get('x')}
{0: 'foo'}
>>> {0: locals().get('x' + spam) for spam in ['']}
{0: None}
Lý do cho sự khác biệt này trong hành vi là gì?Phạm vi Python trong dict comprehension
Hiểu thấu đáo và hiểu thấu máy phát điện tạo ra phạm vi địa phương của riêng họ. List comprehensions không có trong Python 2.x, nhưng làm trong Python 3. (Lưu ý rằng ví dụ đầu tiên của bạn không phải là một dict comprehension. Nó chỉ là một dict đen có biểu hiện như là một giá trị cho khóa 0.)