В Python, что корректный путь состоит в том, чтобы инстанцировать класса от переменной?

Я не уверен, что это будет быстрее или даже точнее, но вы могли бы использовать алгоритм магического квадратного корня Джона Кармака , чтобы быстрее решить квадратный корень. Вероятно, вы могли бы легко проверить это для всех возможных 32-битных целых чисел и убедиться, что вы действительно получили правильные результаты, так как это всего лишь приближение. Тем не менее, теперь, когда я думаю об этом, использование двойных чисел также приближенно, поэтому я не уверен, каким образом это вступит в игру.

8
задан SilentGhost 27 July 2009 в 18:26
поделиться

4 ответа

o = C2()

Это выполнит то, что вы хотите. Или, если вы хотели использовать classToUse, просто используйте:

o = classToUse()

Надеюсь, это поможет.

16
ответ дан 5 December 2019 в 05:34
поделиться

Ты почти там. Вместо вызова метода instantiate () просто вызовите переменную напрямую. Он назначается классу, и классы могут быть вызваны:

if (something):
    classToUse = C1
else:
    classToUse = C2

o = classToUse()
12
ответ дан 5 December 2019 в 05:34
поделиться

Все просто, Python не распознает, где переменная - это класс или функция. Он просто вызывает это значение.

class A:
   pass
B=A
b=B()
2
ответ дан 5 December 2019 в 05:34
поделиться

Класс - это объект, как и все остальное, например, экземпляр, функция, строка ... класс - это тоже экземпляр. Таким образом, вы можете сохранить его в переменной (или где-нибудь еще, где вы можете хранить данные) и вызывать его с помощью () независимо от того, откуда он пришел.

def f(): print "foo"

class C: pass

x = f
x() # prints foo

x = C
instance = x() # instanciates C
0
ответ дан 5 December 2019 в 05:34
поделиться
Другие вопросы по тегам:

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