BOOKPYTHON Telegram 3584
В Python вы можете легко изменять все стандартные переменные, доступные в глобальном пространстве имён:


>>> print = 42
>>> print(42)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable


Это может быть полезно, если ваш модуль определяет какие-то функции с теми же именами, что и встроенные. Такое также случается при метапрограммировании, когда вы принимаете произвольную строку в качестве идентификатора.

Тем не менее, даже если вы затеняете (shadow) некоторые встроенные имена, вам всё ещё может понадобиться доступ к оригинальным объектам, на которые они изначально ссылались. Для этого существует модуль builtins:


>>> import builtins
>>> print = 42
>>> builtins.print(1)
1


Также переменная __builtins__ доступна в большинстве модулей. Однако здесь есть нюанс. Во-первых, это деталь реализации CPython, и обычно её вообще не стоит использовать. Во-вторых, __builtins__ может ссылаться либо на builtins, либо на builtins.__dict__, в зависимости от того, как именно был загружен текущий модуль.

👉@BookPython
👍4



tgoop.com/BookPython/3584
Create:
Last Update:

В Python вы можете легко изменять все стандартные переменные, доступные в глобальном пространстве имён:


>>> print = 42
>>> print(42)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable


Это может быть полезно, если ваш модуль определяет какие-то функции с теми же именами, что и встроенные. Такое также случается при метапрограммировании, когда вы принимаете произвольную строку в качестве идентификатора.

Тем не менее, даже если вы затеняете (shadow) некоторые встроенные имена, вам всё ещё может понадобиться доступ к оригинальным объектам, на которые они изначально ссылались. Для этого существует модуль builtins:


>>> import builtins
>>> print = 42
>>> builtins.print(1)
1


Также переменная __builtins__ доступна в большинстве модулей. Однако здесь есть нюанс. Во-первых, это деталь реализации CPython, и обычно её вообще не стоит использовать. Во-вторых, __builtins__ может ссылаться либо на builtins, либо на builtins.__dict__, в зависимости от того, как именно был загружен текущий модуль.

👉@BookPython

BY Библиотека Python разработчика | Книги по питону


Share with your friend now:
tgoop.com/BookPython/3584

View MORE
Open in Telegram


Telegram News

Date: |

For crypto enthusiasts, there was the “gm” app, a self-described “meme app” which only allowed users to greet each other with “gm,” or “good morning,” a common acronym thrown around on Crypto Twitter and Discord. But the gm app was shut down back in September after a hacker reportedly gained access to user data. Commenting about the court's concerns about the spread of false information related to the elections, Minister Fachin noted Brazil is "facing circumstances that could put Brazil's democracy at risk." During the meeting, the information technology secretary at the TSE, Julio Valente, put forward a list of requests the court believes will disinformation. Add the logo from your device. Adjust the visible area of your image. Congratulations! Now your Telegram channel has a face Click “Save”.! Telegram channels fall into two types: 3How to create a Telegram channel?
from us


Telegram Библиотека Python разработчика | Книги по питону
FROM American