Warning: preg_grep(): Compilation failed: quantifier does not follow a repeatable item at offset 134 in /var/www/tg-me/post.php on line 75
Библиотека питониста | Python, Django, Flask | Telegram Webview: pyproglib/6894 -
Telegram Group & Telegram Channel
🗳 Глобальные переменные, инкапсуляция и области видимости в Python

В Python область видимости (scope) определяет, где переменная видна и как долго живёт.

Основные области видимости:
📝 Локальная — внутри функции
📝 Глобальная — на уровне модуля
📝 Классовая/экземплярная — внутри класса (атрибуты класса и объекта)

🔎 Почему локальные переменные работают быстрее глобальных

Python ищет переменную по правилу LEGB: Local → Enclosing → Global → Built-in

Поиск начинается с самой узкой области — локальной, где переменных меньше, и поиск происходит быстрее.

Пример на замере времени:
import time

def local_test():
a = 0
for _ in range(1000000):
a += 1

b = 0
def global_test():
global b
for _ in range(1000000):
b += 1

start = time.time()
local_test()
print(f"Локальные переменные: {time.time() - start:.4f} сек")

start = time.time()
global_test()
print(f"Глобальные переменные: {time.time() - start:.4f} сек")


Локальные переменные: 0.5668 сек
Глобальные переменные: 1.1951 сек


Результат: локальные переменные работают заметно быстрее.

🔎 Важно вспомнить об инкапсуляции — ключевом инструменте организации и оптимизации кода

Инкапсуляция
:
📝 Локализует переменные внутри классов и функций
📝 Уменьшает количество отслеживаемых интерпретатором переменных
📝 Предотвращает конфликты имён и защищает данные
📝 Позволяет контролировать доступ к атрибутам через методы (getter/setter)

Пример сравнения класса с инкапсуляцией и без:
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height

class EncapsulatedRectangle:
def __init__(self, width, height):
self._width = width
self._height = height
def get_width(self):
return self._width
def set_width(self, width):
self._width = width
def area(self):
return self._width * self._height


В реальных приложениях инкапсуляция помогает писать более надежный и поддерживаемый код.


🔎 Ключевые преимущества инкапсуляции и локальных переменных:

📝Снижение нагрузки на интерпретатор — быстрее выполняется код
📝 Улучшение управления памятью — локальные переменные освобождаются после выхода из функции
📝 Защита данных и уменьшение числа ошибок

🔎 Вывод

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

Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/pyproglib/6894
Create:
Last Update:

🗳 Глобальные переменные, инкапсуляция и области видимости в Python

В Python область видимости (scope) определяет, где переменная видна и как долго живёт.

Основные области видимости:
📝 Локальная — внутри функции
📝 Глобальная — на уровне модуля
📝 Классовая/экземплярная — внутри класса (атрибуты класса и объекта)

🔎 Почему локальные переменные работают быстрее глобальных

Python ищет переменную по правилу LEGB: Local → Enclosing → Global → Built-in

Поиск начинается с самой узкой области — локальной, где переменных меньше, и поиск происходит быстрее.

Пример на замере времени:

import time

def local_test():
a = 0
for _ in range(1000000):
a += 1

b = 0
def global_test():
global b
for _ in range(1000000):
b += 1

start = time.time()
local_test()
print(f"Локальные переменные: {time.time() - start:.4f} сек")

start = time.time()
global_test()
print(f"Глобальные переменные: {time.time() - start:.4f} сек")


Локальные переменные: 0.5668 сек
Глобальные переменные: 1.1951 сек


Результат: локальные переменные работают заметно быстрее.

🔎 Важно вспомнить об инкапсуляции — ключевом инструменте организации и оптимизации кода

Инкапсуляция
:
📝 Локализует переменные внутри классов и функций
📝 Уменьшает количество отслеживаемых интерпретатором переменных
📝 Предотвращает конфликты имён и защищает данные
📝 Позволяет контролировать доступ к атрибутам через методы (getter/setter)

Пример сравнения класса с инкапсуляцией и без:
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height

class EncapsulatedRectangle:
def __init__(self, width, height):
self._width = width
self._height = height
def get_width(self):
return self._width
def set_width(self, width):
self._width = width
def area(self):
return self._width * self._height


В реальных приложениях инкапсуляция помогает писать более надежный и поддерживаемый код.


🔎 Ключевые преимущества инкапсуляции и локальных переменных:

📝Снижение нагрузки на интерпретатор — быстрее выполняется код
📝 Улучшение управления памятью — локальные переменные освобождаются после выхода из функции
📝 Защита данных и уменьшение числа ошибок

🔎 Вывод

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

Библиотека питониста #буст

BY Библиотека питониста | Python, Django, Flask




Share with your friend now:
tg-me.com/pyproglib/6894

View MORE
Open in Telegram


Библиотека питониста | Python Django Flask Telegram | DID YOU KNOW?

Date: |

That growth environment will include rising inflation and interest rates. Those upward shifts naturally accompany healthy growth periods as the demand for resources, products and services rise. Importantly, the Federal Reserve has laid out the rationale for not interfering with that natural growth transition.It's not exactly a fad, but there is a widespread willingness to pay up for a growth story. Classic fundamental analysis takes a back seat. Even negative earnings are ignored. In fact, positive earnings seem to be a limiting measure, producing the question, "Is that all you've got?" The preference is a vision of untold riches when the exciting story plays out as expected.

The messaging service and social-media platform owes creditors roughly $700 million by the end of April, according to people briefed on the company’s plans and loan documents viewed by The Wall Street Journal. At the same time, Telegram Group Inc. must cover rising equipment and bandwidth expenses because of its rapid growth, despite going years without attempting to generate revenue.

Библиотека питониста | Python Django Flask from us


Telegram Библиотека питониста | Python, Django, Flask
FROM USA