Как преобразовать любую переменную исключительно в целое число, список и т. д. внутри __init__() при определении класса в Python?

Как я могу сделать переменные внутри __init__() исключительно целочисленными, списочными или любыми другими объектами в PYTHON?

Например, посмотрите на этот код:

class employee:

def __init__(self,name,joinning_date,salary,degree):
   self.name = name
   self.joinning_date = joinning_date
   self.salary = salary
   self.degree = degree

Если я хочу, чтобы joinning_date был объектом даты из модуля datetime (например,:datetime.date()), а зарплата должна быть преобразована как целое число и степень для преобразования в список, как я могу это сделать?


person Biting Panda    schedule 28.11.2020    source источник
comment
Python не имеет «приведения». Либо преобразуйте каждый аргумент явно, либо используйте подсказку типа, чтобы потребители класса знали, что ожидает класс, а затем оставьте это инструментам проверки статического типа, таким как mypy, для проверки кода.   -  person Martijn Pieters    schedule 28.11.2020
comment
Python не имеет приведения типов, а переменные не имеют типов. Объекты имеют типы. Переменные в Python — это просто имена, которые используются для ссылки на объекты в определенных пространствах имен.   -  person juanpa.arrivillaga    schedule 28.11.2020
comment
Тогда как я могу использовать или преобразовать свою переменную (в данном случае joinning_date) в объект datetime.date(). Можете ли вы показать мне дорогу, пожалуйста?   -  person Biting Panda    schedule 28.11.2020
comment
Если ваша дата представляет собой строку, например. joining_date = '2020-11-28' тогда вы можете использовать isinstance для проверки типа и изменения его, если это не объект datetime.date: if not isinstance(joining_date, datetime.date): joining_date = datetime.date(*[int(x) for x in joining_date.split('-')])   -  person user6386471    schedule 28.11.2020
comment
Спасибо большое за это????????????   -  person Biting Panda    schedule 28.11.2020
comment
И еще одно, могу ли я запускать функции в __init__()? если да, можете ли вы показать мне, как это сделать?   -  person Biting Panda    schedule 28.11.2020