Я использую больше программ, основанных на классах, но в некоторых случаях не удобно предоставлять все self.paramets в класс. В этих случаях я хочу использовать обычный вход в функцию в классе. Я выяснил способ достижения обоих входов, позвольте мне показать это в следующем сценарии:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def myfunc(a):
if (type(a) == str):
name = a
else:
name = a.name
print("Hello my name is " + name)
p1 = Person("John", 36)
p1.myfunc()
print("---------------------")
Person.myfunc("Harry")
Вывод:
Hello my name is John
---------------------
Hello my name is Harry
Во-первых, имя инициализируется классами self.params,Во-вторых, имя предоставляется в методе внутри класса в виде строки. Поэтому проверка типа необходима.
Однако я не думаю, что это чистый подход, потому что, когда у меня есть> 30 методов, мне нужно снова реализовать эти проверки типов, включая предстоящие результаты с ошибками типов.
Кто-нибудь знает лучший подход?