TGViewer
Zen of Python Zen of Python @zen_of_python · 18.8K subscribers
Post #4475 2.85K
Функции vs. метод в Python: разница

Тем, кто в языке первый год, разница между этими объектами может показаться неочевидной, для них и написан этот лонгрид.


Что такое функция?

Это блок кода, который принимает входные данные (аргументы), обрабатывает их и возвращает результат. Выделяют два типа:

1️⃣ без побочных эффектов — это чисто математические функции;
2️⃣ с побочными эффектами — функции, которые взаимодействуют с чем-то вне себя, например, с файлом, списком, базой данных или терминалом.

Пример чистой функции


def add(a, b):
return a + b

print(add(2, 3)) # Всегда возвращает 5


Такая функция при одинаковых входных данных всегда возвращает один и тот же результат.

Пример функции с побочными эффектами:


import random

def random_point():
x = random.randint(0, 10)
y = random.randint(0, 10)
return x, y

print(random_point()) # Каждый раз возвращает разные значения


Здесь функция использует внешний модуль random, и результат может меняться при каждом вызове. Это и есть побочный эффект.


Что такое метод?

Это та же функция, которая принадлежит объекту класса. Пока определение запутывает, но посмотрите пример ниже. Здесь set_name — это метод, используемый только для объектов Employee:



class Employee:
def set_name(self, first_name, last_name):
self.first_name = first_name
self.last_name = last_name

# Создаём объекты
emp1 = Employee()
emp2 = Employee()

# Используем метод
emp1.set_name("Alice", "Smith")
emp2.set_name("Bob", "Brown")

print(emp1.first_name, emp1.last_name) # Alice Smith
print(emp2.first_name, emp2.last_name) # Bob Brown


#основы
@zen_of_python
  • 👍 7
  • ❤ 1
  • ⚡ 1
More from @zen_of_python
  1. Sep 26, 2026Как вручную разрешить ленивый импорт в Python У объекта, созданного через lazy import json…
  2. Sep 25, 2026Почему Python предупреждает о последовательности \477 и как это исправить В строках Python…
  3. Sep 25, 2026Как запускать Python-код в песочнице на MicroPython и WebAssembly В проектах Саймона Уилли…
  4. Sep 25, 2026Как emojet ускоряет работу с эмодзи в Python Библиотека emojet преобразует названия в эмод…
  5. Sep 24, 2026Как читать многострочный ввод в Python REPL несколько раз Вызов open(0).read() читает стан…
  6. Sep 24, 2026Как исправить вызов NamedTuple в Python 3.15 В Python 3.15 больше не поддерживается создан…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →