Считается ли передача слишком большого количества аргументов конструктору антишаблоном?Python

Программы на Python
Ответить
Anonymous
 Считается ли передача слишком большого количества аргументов конструктору антишаблоном?

Сообщение Anonymous »

Я рассматриваю возможность использования библиотеки Factory_boy для тестирования API. Пример из документации:

Код: Выделить всё

class UserFactory(factory.Factory):
class Meta:
model = base.User

first_name = "John"
last_name = "Doe"
Чтобы это работало, нам нужно, чтобы first_name, Last_name и т. д. были переданы в качестве параметров базовому методу __init__(). Класс User(). Однако если у вас много параметров, это приведет к чему-то вроде:

Код: Выделить всё

class User(object):

GENDER_MALE = 'mr'
GENDER_FEMALE = 'ms'

def __init__(self, title=None, first_name=None, last_name=None, is_guest=None,
company_name=None, mobile=None, landline=None, email=None, password=None,
fax=None, wants_sms_notification=None, wants_email_notification=None,
wants_newsletter=None, street_address=None):

self. title = title
self.first_name = first_name
self.last_name = last_name
self.company_name = company_name
self.mobile = mobile
self.landline = landline
self.email = email
self.password = password
self.fax = fax
self.is_guest = is_guest
self.wants_sms_notification = wants_sms_notification
self.wants_email_notification = wants_email_notification
self.wants_newsletter = wants_newsletter
self.company_name = company_name
self.street_address = street_address
Считается ли эта конструкция антипаттерном, и если да, какие альтернативы у меня есть?

Подробнее здесь: https://stackoverflow.com/questions/305 ... ti-pattern
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»