tgoop.com/zen_of_python/4475
Create:
Last Update:
Last Update:
Функции vs. метод в Python: разница
Тем, кто в языке первый год, разница между этими объектами может показаться неочевидной, для них и написан этот лонгрид.
Что такое функция?
Это блок кода, который принимает входные данные (аргументы), обрабатывает их и возвращает результат. Выделяют два типа:
Пример чистой функции
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