Виконання завдань по роботі в ІТ галузі.
.ipynb та для скрипта з розширенням .py;.py та виконайте його натиснувши Run Python File (трикутник :arrow_forward:);
class MyName:
"""Опис класу / Документація
"""
total_names = 0 #Class Variable
def __init__(self, name=None) -> None:
"""Ініціалізація класу
"""
self.name = name if name is not None else self.anonymous_user().name #Class attributes / Instance variables
MyName.total_names += 1 #modify class variable
self.my_id = self.total_names
@property
def whoami(self) -> str:
"""Class property
return: повертаємо імя
"""
return f"My name is {self.name}"
@property
def my_email(self) -> str:
"""Class property
return: повертаємо емейл
"""
return self.create_email()
def create_email(self) -> str:
"""Instance method
"""
return f"{self.name}@itcollege.lviv.ua"
@classmethod
def anonymous_user(cls):
"""Classs method
"""
return cls("Anonymous")
@staticmethod
def say_hello(message="Hello to everyone!") -> str:
"""Static method
"""
return f"You say: {message}"
print("Розпочинаємо створювати обєкти!")
names = ("Bohdan", "Marta", None)
all_names = {name: MyName(name) for name in names}
for name, me in all_names.items():
print(f"""{">*<"*20}
This is object: {me}
This is object attribute: {me.name} / {me.my_id}
This is {type(MyName.whoami)}: {me.whoami} / {me.my_email}
This is {type(me.create_email)} call: {me.create_email()}
This is static {type(MyName.say_hello)} with defaults: {me.say_hello()}
This is class variable {type(MyName.total_names)}: from class {MyName.total_names} / from object {me.total_names}
{"<*>"*20}""")
print(f"We are done. We create {me.total_names} names! ??? Why {MyName.total_names}?")
.ipynb);None створюється обєкт з іменем Anonymous?say_hello()? Допишіть цю частину коду.len());names та порівняйте із виведеним результатом. Дайте відповідь чому маємо різну кількість імен?self.name завжди починалося з великої літери, навіть якщо користувач ввів маленьку.;create_email так щоб можна було модифікувати значення після @; ValueError("Ім'я може містити лише літери!").
full_name, яка повертає результат у форматі:
"User #<id>: <name> (<email>)"
save_to_file(filename="users.txt"), який додає рядок із записом у файл;