Hàm locals() trong Python

Hàm locals() trong Python trả về một từ điển chứa các biến được định nghĩa trong không gian tên cục bộ. Gọi locals() trong không gian tên toàn cục giống như gọi globals() và trả về một từ điển đại diện cho không gian tên toàn cục của module. Vậy cú pháp của hàm locals() như thế nào, nó có những tham số gì và cách sử dụng ra sao? Mời bạn đọc theo dõi.

Cú pháp hàm locals() trong Python

locals()
  • Không có tham số và đối số nào nằm trong hàm.

Giá trị trả về từ locals

Hàm locals() cập nhật và trả về từ điển được liên kết với bảng ký hiệu cục bộ hiện tại.

Ví dụ : Hàm locals() hoạt động thế nào?

locals()

Chạy chương trình, kết quả trả về là:

{'In': ['', 'locals()'],
'Out': {},
'_': '',
'__': '',
'___': '',
'__builtin__': <module 'builtins' (built-in)>,
'__builtins__': <module 'builtins' (built-in)>,
'__name__': '__main__',
'_dh': ['/tmp/tmp98r7zamj'],
'_i': '',
'_i1': 'locals()',
'_ih': ['', 'locals()'],
'_ii': '',
'_iii': '',
'_oh': {},
'_sh': <module 'IPython.core.shadowns' from '/usr/local/lib/python3.5/dist-packages/IPython/core/shadowns.py'>,
'exit': <IPython.core.autocall.ExitAutocall at 0x7fee741017f0>,
'get_ipython': <bound method InteractiveShell.get_ipython of <IPython.core.interactiveshell.InteractiveShell object at 0x7fee749cef98>>,
'quit': <IPython.core.autocall.ExitAutocall at 0x7fee741017f0>}

Ví dụ 2: Locals() hoạt động thế nào trong phạm vi cục bộ?

def localsNotPresent():
return locals()

def localsPresent():
present = True
return locals()

print('localsNotPresent:', localsNotPresent())
print('localsPresent:', localsPresent())

Chạy chương trình ta được kết quả là:

localsNotPresent: {}
localsPresent: {'present': True}

Ví dụ 3: Cập nhật giá trị bằng locals()

def localsPresent():
present = True
print(present)
locals()['present'] = False;
print(present)

localsPresent()

Chạy chương trình ta được kết quả là:

True
True

Không giống như từ điển globals có thể thay đổi giá trị của biến, locals không thay đổi thông tin bên trong không gian tên cục bộ.

Bài trước: Hàm globals() trong Python

Bài tiếp: Hàm list() trong Python

Thứ Ba, 19/03/2019 13:40
51 👨 149
Bài viết liên quan