Python эквивалентность по умолчанию в C # - PullRequest
4 голосов
/ 20 июня 2011

Есть ли в python способ получить значение по умолчанию для типов?

//C#
default(typeof(int))

Я ищу более питонный способ получения значений по умолчанию для типов?

#python
if(isinstance(myObj, int):
    return 0
elif(isinstance(myObj, dict):
    return {}
else:
    return None

Очевидно, что я его ошарашил.Я имею дело с некоторыми абстрактными вещами, и когда кто-то запрашивает атрибут, которого у меня нет, я в основном проверяю сопоставление key-> type и возвращаю экземпляр по умолчанию с классическим переключателем.

Ответы [ 2 ]

11 голосов
/ 20 июня 2011

Просто создайте его экземпляр:

int()  # 0
dict() # {}
list() # []

Более подробно: в Python нет явного понятия «значение по умолчанию». Там просто экземпляр класса, созданный с параметрами по умолчанию. Некоторые классы могут ожидать аргументы, когда вы их создаете, в этом случае значение по умолчанию не существует.

3 голосов
/ 20 июня 2011

Как насчет:

type(myObj)()

Работает для int и dict.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...