-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclass_classmethod.py
More file actions
19 lines (15 loc) · 1.2 KB
/
class_classmethod.py
File metadata and controls
19 lines (15 loc) · 1.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
'''
Класові методи використовують декоратор @classmethod і, на відміну від статичних методів, мають доступ до самого класу через параметр cls, який автоматично передається Python. Це означає, що класові методи можуть змінювати стан класу або викликати інші класові методи. Класові методи часто використовуються для фабричних методів, які створюють екземпляри класу, використовуючи різні способи ініціалізації, ніж стандартний конструктор.
'''
class Employee:
def __init__(self, name, position):
self.name = name
self.position = position
@classmethod
def from_string(cls, employee_info):
name, position = employee_info.split(',')
return cls(name, position)
employee_info = "John Doe,Manager"
john_doe = Employee.from_string(employee_info)
print(john_doe.name) # Виведе: John Doe
print(john_doe.position) # Виведе: Manager