Как назначить переменные экземпляра как значения по умолчанию для аргументов ключевых слов в одном классе в Python
-
20-12-2019 - |
Вопрос
в Python 3.3+, учитывая класс с способом, класс имеет переменную экземпляра, которая представляет собой простой объект () объект (мы назовем это Self.False).Как использовать эту переменную экземпляра в качестве значения по умолчанию для аргумента ключевого слова?
class Test:
def __init__(self):
self.FALSE=object();
def Tester(self, key=self.FALSE):
pass;
.
Это, конечно, не работает, потому что объем ключевых слов аргументации значения по умолчанию не включает в себя (и не включает в себя в обычном классе тестовый).Он включает в себя глобальные переменные и, по крайней мере, некоторые объекты, однако.
Есть ли способ сделать это?У меня нет ужасных нужд, прямо сейчас, но было бы действительно хорошо, если бы я мог сделать это, как-то.Я бы подумал, что вы сможете пропустить что-либо в качестве значения по умолчанию для аргумента ключевых слов.Конечно, должен быть путь.
Решение
Первоначально имеют значение по умолчанию RENACODICODECODETAGCODE в качестве key
и в функции, если None
является key
, то вы можете установить значение по умолчанию, что бы вы ни понравились.
def Tester(self, key=None):
if key is None:
key = self.FALSE
.
Кроме того, вам не нужны запятые в Python, например, в C / C ++ / Java.
Другие советы
Нет никакого способа, потому что атрибуты экземпляра не существуют, пока экземпляр не будет создан, но методы определены, когда класс создается, прежде чем какие-либо экземпляры существуют.То есть говоря: «Как вы делаете в своем вопросе), что« класс имеет переменную экземпляра »неверно.У класса нет такой вещи;Только экземпляры имеют эту переменную, и только если и когда они созданы.
Вы должны сделать, поскольку Thefourtheee предлагает и обрабатывать назначение по умолчанию внутри корпуса метода.