В пхп есть функции аля class_exists
Есть название типа объекта, нужно проверить можно ли его создать по имени.
Чото в голову ничего не приходит, эдво?) Тупо туплю
Форум → Программирование → Python → Проверить возможность создания объекта по имени
Апрель 24, 2014, 1:55 п.п., спустя 16 минут 38 секунд
в питоне вроде есть эксепшн NameError
@Sinkler, есть, но как его использовать хз
Апрель 24, 2014, 3:28 п.п., спустя 1 час 32 минуты 52 секунды
тебе же типа так нужно?
$name = 'TestCls';
if (class_exists($name))
{
$object = new $name();
}
else
{
die('not found');
}
>>> module_name = 'pprint'
>>> class_name = 'PrettyPrinter'
>>> imported_module_object = __import__(module_name)
>>> kls = getattr(imported_module_object, class_name)
>>> pp = kls()
>>> pp.__class__.__name__
'PrettyPrinter'
>>> repr(pp)
pprint.prettyprinter
ну и будет валиться NameError при неудаче, видимо
Апрель 24, 2014, 3:45 п.п., спустя 16 минут 44 секунды
@Sinkler, такой метод я знаю. но мне надо в текущем контексте попробовать создать. то что ты указал это стандартный путь "подгрузить модуль и взять оттуда (getattr) нужный тип, ну или попробовать взять".
мне надо без загрузки, попытаться создать в текущем контексте
Апрель 24, 2014, 4:01 п.п., спустя 15 минут 55 секунд
ммм
m = globals()['TestCls']()
Апрель 24, 2014, 4:02 п.п., спустя 1 минуту 39 секунд
ммм
m = globals()['TestCls']()
@Sinkler, это первое о чем я подумал. мимо :(
globals()['int']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'int'
Апрель 24, 2014, 4:05 п.п., спустя 55 секунд
а он там типа есть?
@Sinkler, конечно
>>> int
<type 'int'>
Апрель 24, 2014, 4:09 п.п., спустя 4 минуты 15 секунд
я, наверное, не понял. это ведь нужно?
class int():
def test(self):
print 123;
m = globals()['int']()
m.test()
Апрель 24, 2014, 4:13 п.п., спустя 3 минуты 43 секунды
@Sinkler, нет не это)
нашел вроде решение короче я
проверю на builtins хотя бы
dir(__builtins__)
type(__builtins__.bin)
<type 'builtin_function_or_method'>
type(__builtins__.bool)
<type 'type'>
Апрель 25, 2014, 12:57 д.п., спустя 46 минут 10 секунд
Я когда помнил пхп-функции и не знал python-альтернативы, то пользовался
Но, к сожалению,
Php2Python - Python alternatives to PHP functions, classes and libraries - Php2Python
Looking for a Python equivalent of some PHP function, class or library. Here is the place to find it or contribute your findings.
php2python.com
PHP function.class-exists in Python - Php2Python
Checks if the class has been defined
php2python.com
Пожалуйста, авторизуйтесь, чтобы написать комментарий!