Сократите свои имена переменных.
Нет, действительно. Если вы не можете соответствовать обычным ограничениям ширины, это намек на необходимость рефакторинга. Позвольте мне дойти до этого.
Чтобы оставаться ясным, имена должны быть короткими. С другой стороны, вам нужно, чтобы они описывали значение, которое они удерживают, или код, который они выполняют (в случае функций и т. Д.)
Если вам сложно описать значение и, держите имя коротким, это означает, что для любого человека , читающего ваш код, будет, скорее всего, еще намного сложнее читать и понимать, так как вы делаете , они концентрируются на нескольких вещах.
Для comaprison, если я пишу что-то вроде:
class App():
def __init__(self):
self.config = {}
self.error = ""
# ...
configDatabaseConnection = mydbmodule.conect(credentials)
configQuery = "this and that"
config = configDatabaseConnection.query(configQuery)
configDatabaseConnectionErrorString = (configDatabaseConection.error)
if configDatabaseConnectionErrorString:
raise configError(configDatabaseConnectionErrorString)
# ...
это обычно означает, что мне нужно отделить configutation другому методу, и использовать вместо:
class App():
def __init__(self, credentials):
self.config = self.load_config(credentials)
self.error = ""
# ...
self.load_config()
def load_config(self, credentials):
conn = mydbmodule.conect(credentials)
q = "this and that"
config = conn.query(q)
if conn.error:
raise configError(conn.error)
self.config = config
который гораздо более читабельным и позволяет добавлять больше логики в процедуру настройки (скажем, откидывания, чтение из файла вместо db ...) без загромождения сути моего кода.
По моему скромному мнению, ваша ситуация является сильным намеком на то, что поведение, которое вы хотите реализовать с этим кортежем, должно быть абстрагировано в своем собственном классе с помощью 'multiReturn()' в качестве его конструктора. –