Я новичок в python, и у меня есть несколько вопросов, касающихся типа атрибута в классе.Из опыта работы с C я понял, что вы всегда должны определять тип переменной прямо при ее создании, но в Python это не так.
Я пытаюсь создать класс с 3 атрибутами.Использование Python 3.7 в Pycharm.
Один из способов - сделать это так
class Solution:
next: int
f_star: tuple
t_star: list
Другой способ - вот так
class Solution:
def __init__(self,):
self.next = int
self.f_star = tuple
self.t_star = list
Но ни один из них на самом деле не ограничивает атрибуты соответствующим типом.Я все еще могу выполнить, скажем,
node = Solution
node.t_star = 5
Затем я запускаю это, чтобы проверить тип атрибутов, прежде чем присваивать новое значение.Итак, я сделал это:
node = Solution
print(type(node.next))
В первом случае он правильно возвращает тип , но во втором случае он говорит:
AttributeError: type object 'Solution' has no attribute 'f_star'.
Может кто-нибудь пожалуйстаОбъясните, почему есть такая разница и в чем разница в двух способах определения класса.
И как или нужно определить тип атрибутов в классе в python?