словарь объекта - PullRequest
       9

словарь объекта

0 голосов
/ 22 августа 2009

У меня отсортированный дикт

{ 1L: '<'New_Config (type: 'String') (id: 1L) (value: 4L) (name: 'account_receivable')'>', 2L: '<'New_Config (type: 'string') (id: 2L) (value: 5L) (name: 'account_payable')'>', 3L: '<'New_Config (type: 'String') (id: 3L) (value: 8L) (name: 'account_cogs ')'>', 4L: '<'New_Config (type: 'String') (id: 4L)(value: 9L)(name: 'account_retained_earning')'>', 5L: '<'New_Config (type: 'String') (id: 5L) (value: 6L) (name: 'account_income')'>' }

здесь new_config это объект, мне нужно получить доступ к элементу объекта

как я могу получить доступ к свойствам объекта ???? Предположим, я хочу получить доступ к new_config.name

Ответы [ 2 ]

1 голос
/ 22 августа 2009

Словари Python не отсортированы. Если у вас есть некоторый пользовательский класс, который реализует некоторые методы отображения (например, словарь), но переопределяет некоторые из них, чтобы создать видимость поддержания некоторого (отсортированного) порядка, то детали реализации этого также могут объяснить, почему ваш пример не выглядит как действительный Python.

{
1L: New_Config(...)(...)(...)...,
2L: New_config(...)(...)(...)...,

... выглядит почти как Питон. 1L, 2L - представления больших целых чисел (как ключи, если это был словарь). New_Config (...) выглядит как repr чего-то, а (..) после этого будет похоже на вызов функции.

Итак, мой совет: не пытайтесь отправить вопрос по памяти или из какого-то смутного представления о том, что, как вы думаете, вы видели. На самом деле вставьте в некоторый код.

Если у вас действительно есть объекты, то вы получите доступ к их атрибутам, используя new_config.attribute или, возможно, (если кто-то закодировал их класс, чтобы быть противным) с помощью некоторых new_config.accessor() вызовов методов (например, foo.getThis() и foo.getThat() или что-то одинаково глупое).

0 голосов
/ 22 августа 2009
class Foo(object):
    def __init__(self,name,weight):
        self.name = name
        self.weight = weight

>>> D = {}
>>> D['1L'] = Foo("James",67)
>>> D['2L'] = Foo("Jack",83)
>>> D
{'2L': <__main__.Foo object at 0x013EB330>,
 '1L': <__main__.Foo object at 0x00C402D0>}

>>> D['1L'].name
'James'

В общем

DictName [KEY] дает вам VALUE для этого KEY .

чтобы получить доступ к атрибуту, где VALUE - это объект, который вы можете использовать

DictName[KEY].attritbute

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