170 похожих чатов

Коллеги, есть такой абстрактый код s = 1 class A:

D = None
def __init__(self, s):
self.s = s
self.__class__.D = self.s
def p(self, a = D):
print(a)

o = A(s)
o.p()
# None
o.D
# 1
как сделать, чтобы при вызове метода p без аргументов, печаталось то, что в s? Т.е. как мне внешнюю зависимость прокинуть в дефолт метода класса?

28 ответов

16 просмотров

ай

print(self.s)?

Patsy-Charmer Автор вопроса
Tishka17
ай

привет. мне надо чтобы в методе подтянулось значение из внешней зависимости.. типа async def get_template_collection( self, page_number: Optional[int] = Query(START_PAGE_NUMBER, ge=1, alias='pageNumber'), page_size: Optional[int] = Query(DEFAULT_PAGE_SIZE, ge=0, alias='pageSize'), но DEFAULT_PAGE_SIZE я хочу в настройках проекта определять

class A: def __init__(self, s): self.s = s def p(self, a = None): print(self.s if a is None else a) Так?

Patsy-Charmer Автор вопроса
林檎
class A: def __init__(self, s): self.s...

типа, но нет, но видимо по другому никак

Patsy Charmer
привет. мне надо чтобы в методе подтянулось значен...

Ну дефолтные значения аргумента не во время исполнения функции считаются же

Patsy-Charmer Автор вопроса
林檎
Ну дефолтные значения аргумента не во время исполн...

я это понимаю, что во время создания, в этом и вопрос, как во время создания внешнюю зависимость считать

Patsy Charmer
привет. мне надо чтобы в методе подтянулось значен...

а причем тут __class__, не надо в классе ничего хранить

Patsy-Charmer Автор вопроса
Tishka17
а причем тут __class__, не надо в классе ничего хр...

а как тогда затянуть в метод в качестве дефолта переменной внешнюю зависимость?

Patsy-Charmer Автор вопроса
Tishka17
передать в ините

куда сохранить и потом как считать?

Tishka17
передать в ините

Тут человеку до завтра надо отдохнуть, подготовиться хорошо

Patsy-Charmer Автор вопроса
Tishka17
передать в ините

просто прикол в том, что в методе при объявлении нет еще self окружения, потому что self не известен.

Patsy-Charmer Автор вопроса
Tishka17
Шта

ну ты говоришь в инициализатор передать, а как потом это попадет в метод, если метод уже сконструирован в момент сборки класса?

Patsy-Charmer Автор вопроса
Илья Власов
А что такое self окружение?

имею ввиду переменные объекта-построенного самого

Patsy Charmer
ну ты говоришь в инициализатор передать, а как пот...

Метод имеет ссылку на self при вызове и оттуда может читать

Patsy-Charmer Автор вопроса
Tishka17
Метод имеет ссылку на self при вызове и оттуда мож...

дык. ты предлагаешь типа так сделать: async def get_template_collection( self, page_number: Optional[int] = Query(START_PAGE_NUMBER, ge=1, alias='pageNumber'), page_size: Optional[int] = Query(self.DEFAULT_PAGE_SIZE, ge=0, alias='pageSize'), ) но в этот момент нет никакого self

Patsy Charmer
дык. ты предлагаешь типа так сделать: async de...

Нет, я предлагаю сделать как показали выше

Patsy-Charmer Автор вопроса
Tishka17
Нет, я предлагаю сделать как показали выше

типа так def p(self, a = None): print(self.s if a is None else a) ?

Patsy Charmer
типа так def p(self, a = None): print(...

Я не говорил, что лучшее из всех решений, это был ответ на вопрос до этого. А так можно и не None в качестве значения по умолчанию использовать. Но надо понимать применимость значений по умолчанию

Patsy-Charmer Автор вопроса
林檎
Я не говорил, что лучшее из всех решений, это был ...

да не суть нон не нон, важно что в теле метода придется видимо проверять значение

Patsy Charmer
да не суть нон не нон, важно что в теле метода при...

Если оно во время исполнения может меняться или зависит от рантайма — да, по крайней мере, я других очевидных путей не вижу

Patsy-Charmer Автор вопроса
林檎
Если оно во время исполнения может меняться или за...

нет. не зависит, просто хранится во внешних зависимостях

Patsy Charmer
дык. ты предлагаешь типа так сделать: async de...

У тебя вот тут значение аргумента по умолчанию зависит от состояния объекта

Patsy-Charmer Автор вопроса

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
9
> Копаем глубже > Следующий момент был, когда я спросил его, знает ли он JavaScript. Он ответил, что его учили работать с C#. Я тоже в университете писал на C#, но даже там мн...
Oleg Volkov
4
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
И никого не интересует какие пакеты кто использует. ((% Заходишь на сайт симфони и видишь поддержку Украины - по законам РФ это ж экстремизм. Только никто не отказывается от с...
Am Ambrion
11
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
14
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
8
Вопрос на перед, на следующую пятницу. Сколько строк кода можно вешать на одного программиста, понятно что если проект хорошо написан то можно и миллион. Но есть же где то пре...
AlekseyK Kluchnikov
31
Карта сайта