2023-06-01 14:02:21
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 и **kwargsdef 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
4.4K views11:02