🔥 Burn Fat Fast. Discover How! 💪

5 Mistakes Every Python Developer Should Avoid! 5 ошибок, кот | Python/ django

5 Mistakes Every Python Developer Should Avoid!

5 ошибок, которых должен избегать каждый разработчик Python!

1. Avoid using global variables
Избегайте использовать глобальных переменных

# Using global variables
my_var = 42

def my_function():
global my_var
my_var += 1
return my_var

# Using local variables
def my_function2(my_var):
my_var += 1
return my_var

2. Avoid blocking I/O operations
Избегайте блокировки операций ввода/вывода

# Blocking I/O
import requests

response = requests.get('https://example.com')
print(response.text)

# Non-blocking I/O using asyncio
import asyncio
import aiohttp

async def fetch(session, url):
async with session.get(url) as response:
return await response.text()

async def main():
async with aiohttp.ClientSession() as session:
html = await fetch(session, 'https://example.com')
print(html)

asyncio.run(main())

3. Avoid using eval() and exec()
избегайте использования eval() и exec()

# Using eval() to execute code
my_var = '1 + 1'
result = eval(my_var)

# Using ast.literal_eval() to safely evaluate literals
import ast

my_var = '[1, 2, 3]'
result = ast.literal_eval(my_var)

4. Avoid using mutable default arguments
Избегайте использования изменяемых аргументов

# Using mutable default arguments
def my_function(my_list=[]):
my_list.append(1)
return my_list

result1 = my_function() # [1]
result2 = my_function() # [1, 1]

# Using immutable default arguments
def my_function2(my_list=None):
if my_list is None:
my_list = []
my_list.append(1)
return my_list

result3 = my_function2() # [1]
result4 = my_function2() # [1]

5. Avoid using *args and **kwargs excessively
Избегайте частого использования *args и **kwargs

def my_function(*args, **kwargs):
arg1 = args[0]
arg2 = kwargs.get('arg2', 'default_value')
return arg1, arg2

result = my_function('value1', arg2='value2')

# Using named arguments and default values
def my_function2(arg1, arg2='default_value'):
return arg

Article
10 самых распространенных ошибок Python

@pythonl