В Питоне рюхает кто?

Makc500

tipnote

Может проще проблему описать все-таки?

Makc500

чо за тип данных ({словарь}) ?

tipnote

не понял, к чему круглые скобки
вообще, это просто map
хранит данные в виде пар: ключ-значение
ключ - любой объект с определенной функцией hash
пример:

str2num = { 'one': 1,
'two': 2 }
number = str2num['one']

Makc500

Есть обект просто {..}, а есть ({..}). В чем разница?

psihodog

ты уверен, что есть такой тип ({...})?
>>> a=({'aaa':'bbb'})
>>> type(a)
<type 'dict'>

tipnote


art:~$ python2.3
Python 2.3.5 (Sep 4 2005, 22:01:42)
[GCC 3.3.5 (Debian 1:3.3.5-13)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> str2num = {'one': 1, 'two': 2}
>>> str2num_ = ({'one': 1, 'two': 2})
>>> type(str2num)
<type 'dict'>
>>> type(str2num_)
<type 'dict'>

хз, похоже, никакой

tipnote

контекст покажи
может речь шла о tuple словарей, к примеру?

Makc500

завтра покажу
но смысл в том, что возвращается объект типа ({} а доступ к тому, что внутри {} я получить не могу

tipnote

tup = ({'one': 1, 'two': 2} , ) - вот это, например, tuple с одним элементом.
и тогда нет возможности присваивания чего-либо индивидуальному элементы тьюпла (если это подразумевалось под доступом
то есть,
tup[0] = {...} - даст ошибку.

pilot

чо за тип данных ({словарь}) ?

Кортеж, а в кортеже словарь.

Makc500

({'one': 1, 'two': 2} , ) -
Нет, запятой там нету..

Makc500

Не, типа такого: ({'one': 1, 'two': 2, ..} )

pilot

Не, типа такого: ({'one': 1, 'two': 2, ..} )

Я ж сказал: кортеж из одного эл-та. Эл-т - словарь.
Если "не" - то выдай код как получил и type(obj).

Makc500

Вечером будет пример.
А разве ({..}) и ({..} -- одно и то же?

pilot

А разве ({..}) и ({..} -- одно и то же?
Да.

Makc500

Вот:
 

...
print tmp
print type(tmp)
print tmp[0]
  

output:
 
>>> execfile("d:\\test.py")
({'children': '', 'id': 2, 'name': 'Datum axis-1', 'parents': '', 'path': 'unknown', 'sketch': 'unknown'})
<type 'Feature'>
File "d:\test.py", line 27, in ?
    print tmp[0]
TypeError: unsubscriptable object
>>>

Мне нужно узнать, например, чему равно 'id' у tmp

pilot

Тогда найди класс с именем Feature в исходниках.
А id(tmp) не помогает?

pilot

файл исходный покажи. с текстом программы.

tipnote

>>А разве ({..}) и ({..} -- одно и то же?
>Да.
A special problem is the construction of tuples containing 0 or 1 items: the syntax has some extra quirks to accommodate these. Empty tuples are constructed by an empty pair of parentheses; a tuple with one item is constructed by following a value with a comma (it is not sufficient to enclose a single value in parentheses).

Источник:
http://python.org/doc/2.4.2/tut/node7.html#SECTION0073000000...

pilot

Да, я наврал
Для списков и словарей вроде верно, кортежи не пользую
Но у него здесь у tmp переопределена str или repr и всё.

Andbar

Для списков и словарей вроде верно
кортежи определяются через круглые скобки, а они используются также для указания последовательности выполнения операций.

tipnote

>Но у него здесь у tmp переопределена str или repr и всё.
Хз, дождемся код.

Makc500

id(tmp)
>>>print id(tmp)
313949448
- чот не то
а это, собственно, весь код
функция возвращает объект типа feature
 
from abaqus import *
from abaqusConstants import *
import part
import regionToolset
import displayGroupMdbToolset as dgm
import material
import section
import assembly
import step
import interaction
import load
import mesh
import job
import sketch
import visualization
import xyPlot
import displayGroupOdbToolset as dgo
p = mdb.models['Model-1'].Part(name='Part-1', dimensionality=THREE_D, type=DEFORMABLE_BODY)
p.ReferencePoint(point=(0.0, 0.0, 0.0
p = mdb.models['Model-1'].parts['Part-1']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
p2 = mdb.models['Model-1'].parts['Part-1']
tmp=p2.DatumAxisByPrincipalAxis(principalAxis=XAXIS)
print type(tmp)
print id(tmp)
  

где искать описания класса? в папке с питоном только *.pyc есть..

pilot

>>>print id(tmp)
313949448
- чот не то

Это id у tmp (т.е. грубо говоря адрес по которому лежит переменная tmp)
где искать описания класса? в папке с питоном только *.pyc есть..

видимо в модулях abaqus и abaqusConstants.
Есть еще способ: почитать доки (если это стандартный модуль)
http://www.google.ru/search?hl=ru&q=DatumAxisByPrincipal...
Вторая ссылка. Только доки не бесплатные => я к ним доступа не имею. Но раздел 10.6.

Niki

В тех доках объукт feature не полностью описывается.
Модули abaqus и abaqusConstants идут ввиде бинарников *.pyc. Чем их смотреть.
Есть ещё предложение, как узнать id у объекта
может запихать это всё в стороковую переменную и вытащить вручную?

Niki

Имеется ввиду этот объект
({'children': '', 'id': 2, 'name': 'Datum axis-1', 'parents': '', 'path': 'unknown', 'sketch': 'unknown'})
id тот, что равен 2

pilot

В тех доках объукт feature не полностью описывается.
Модули abaqus и abaqusConstants идут ввиде бинарников *.pyc. Чем их смотреть.
tmp.__doc__
tmp.__class__
tmp.__dict__
чему равны? (print им сделай)
Есть ещё предложение, как узнать id у объекта
может запихать это всё в стороковую переменную и вытащить вручную?
Я не знаю как оно генерит свое строковое представление. В тех примерах что ты приводил - так можно, _наверно_.
Только это через ж...

Niki

File "d:\test.py", line 29, in ?
print tmp.__class__
AttributeError: 'Feature' object has no attribute '__class__'
Feature -> The following commands operate on Feature objects. For more information about the
Feature object, see .
File "d:\test.py", line 29, in ?
print tmp.__dict__
AttributeError: 'Feature' object has no attribute '__dict__'

pilot

Feature -> The following commands operate on Feature objects. For more information about the
Feature object, see .
это не полностью?

Niki

Не, это полностью.

Niki

>Я не знаю как оно генерит свое строковое представление. В тех примерах что ты приводил - так можно, _наверно_.
>Только это через ж...
Есть ещё идеи?

pilot

1. Читать доки заново. (всё что тебе _можно_ узнать) - там написано должно быть.
2. Спросить у производителя, если в доках не описано.
3. Делать через ж.
Больше не видно вариантов :-(

pilot

Есть ещё идеи?
Я не видел доки.

Niki

1. Читать доки заново. (всё что тебе _можно_ узнать) - там написано должно быть.
ABAQUS/CAE is a feature-based modeling system, and features are stored in the Feature object. The user defines the parameters of the feature, and ABAQUS/CAE modifies the model based on the value of the parameters. This evaluation of the parameters is called regeneration of the feature, Feature objects contain both the parameters and the resulting model modification.
Access
import part
mdb.models[name].parts[name].features[name]
mdb.models[name].parts[name].featuresById[i]
import assembly
mdb.models[name].rootAssembly.features[name]
mdb.models[name].rootAssembly.featuresById[i]
...
Members
The Feature object has the following member:
name
A String specifying the repository key.

Niki

3. Делать через ж.
Как напривить output "print tmp" в строку?

pilot

По-моему тут сказано что ты должен использовать какие-то третьи функции для работы с содержимым tmp. Эти функции (типа featuresById)должны быть описаны в доках.
А единственный доступный атрибут name:
print tmp.name

pilot

В общем, если ты делаешь что-то серьезноое, стоит почитать документацию по питону.
А по теме - функции str и repr
Оставить комментарий
Имя или ник:
Комментарий: