Я создаю класс под названием «Беседа» как часть более крупного кода и хочу убедиться, что введенные пользователем поля действительны (в случае, если они недействительны, я хочу поднять значение Ошибка), но мой is_valid метод не работает, когда я запускаю программу:метод проверки в классе
класса Диалог:
def __init__(self, members, size_limit, backup_policy, cloud_account_prefix='./'):
if not self.is_valid():
raise ValueError
self.members = members
self.size_limit = size_limit
self.backup_policy = backup_policy
self.cloud_account_prefix = cloud_account_prefix
self.backup_count = 0
self.size_count = 0
self.messages = []
def is_valid(self, members, size_limit, backup_policy, cloud_account_prefix):
if self.members < 2:
return False
if self.size_limit <= 10:
return False
if not path_ok(self.cloud_account_prefix):
return False
if self.backup_policy < 1:
return False
else:
return True
Что я делаю неправильно?
Не работает? Любая ошибка? Вы называете это где-то? – Miguel
удалить 'self.' в вашей функции is_valid. На данный момент еще не определены. Вместо этого используйте аргументы. например: «если члены <2:» –
Почему вы не проверяете свои атрибуты при присваивании с использованием свойств? Также вы должны дать лучшую обратную связь; почему бы не сделать валидацию выбросить ошибку, которая на самом деле говорит *, какую ценность и почему *? «Был ValueError» ничего мне не говорит, но, к примеру, «вы должны указать не менее двух членов» - полезная информация. – jonrsharpe