Передача, какой элемент для поиска динамически - PullRequest
0 голосов
/ 21 февраля 2012

Я хочу определить, какой атрибут динамически искатьсделать это на любом языке?Я не могу придумать способ с шаблонами C ++ или динамической типизацией.

Ответы [ 3 ]

4 голосов
/ 21 февраля 2012

Я не думаю, что вы можете динамически обращаться к атрибутам объектов так, как вы пытаетесь.встроенная функция getattr позволит вам сделать это.Как предложил Марцин, вы можете просто заменить f на getattr

http://docs.python.org/library/functions.html#getattr

def f(x, a)
  return getattr(x, a)

или

class X:
    b = 4

getattr(x, a)

print(getattr(x, "b"))
1 голос
/ 21 февраля 2012

f = getattr

Это заставит ваш пример работать. Я думаю, вам нужно прочитать документы по питону: http://docs.python.org/library/functions.html

1 голос
/ 21 февраля 2012

В Python используйте словарь

def f(x,a):
   return x[a]

x = {}
x[b] = 4
print f(x,b)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...