Python, Оцените Значение переменной как Переменную

Пожалуйста, измените ваш аргумент представлений на «Показать все результаты для указанного поля», а затем в быстрой вкладке передайте соответствующий идентификатор термина.

Благодаря

5
задан Antonius Common 11 March 2009 в 00:40
поделиться

4 ответа

getattr(f, field), если я понимаю Вас правильно (то есть, если Вы могли бы иметь field = "foo", и хочу f.foo). В противном случае Вы могли бы хотеть разъясниться. Python имеет eval(), и я не знаю что другие языки eval() Вы хотите эквивалент.

13
ответ дан 18 December 2019 в 09:10
поделиться

Python, эквивалентный из eval() eval()

x = 9
eval("x*2")

даст Вам 18.

v = "x"
eval(v+"*2")

работы также.

1
ответ дан 18 December 2019 в 09:10
поделиться
getattr( object, 'field' ) #note that field is a string

f = 'field_name'
#...
getattr( object, f )


#to get a list of fields in an object, you can use dir()
dir( object )

Для получения дополнительной информации см.: http://www.diveintopython.org/power_of_introspection/index.html

Не используйте оценку, даже если строки безопасны в данном случае! Просто не привыкните себя для него. Если Вы получаете строку от пользователя, это мог бы быть вредоносный код.

Закон Murphy's: если вещи могут пойти не так, как надо, они будут.

4
ответ дан 18 December 2019 в 09:10
поделиться

Для достигания списка всех полей в Python возражают, что можно получить доступ к __dict__ свойство.

class Testing():
    def __init__(self):
        self.name = "Joe"
        self.age = 30

test = Testing()
print test.__dict__

результаты:

{'age': 30, 'name': 'Joe'}
0
ответ дан 18 December 2019 в 09:10
поделиться
Другие вопросы по тегам:

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