Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 6, 2009 11:50:17

Lunatic
От:
Зарегистрирован: 2009-09-01
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

определить тип объекта

Здраствуйте.

Так как мои скрипты начали использоваться на разных машинах с разной конфигурацией. Меня заставили хранить все настройки и все history в ini файлах. Но все мои скрипты свалились, потому что функция возвращает str объекты, а некоторые из операций требуют int и так далее.

Данные конфигурации выглядят примерно так:

[permissions]
operator_id=16669
remove_month=3
ext =pkl
filename=customer_permission
как видите, данные тут никак не указывают на тип объекта. я пытался в функции считывания из ini файла опредлять тип объекта, но и этот вариант безбожно валится:

  def read_parameter(self, section, param):
''' ini_parser('ini_path').read_parameter('section', 'option')'''
x = self.cp.get(section, param)
#proverim, kakoi tip dannqh mq poluchili
if type(x) == int:
return int(x)
else:
return str(x)
у меня осталось два варианта:
- либо после вызова функции жестко указывать какой-тип данных я ожидаю
- либо в ini файлах str объекты окружать ‘ ’, но это помоему совсем не выход

поэтому хочется узнать, как правильно определить тип получаемого объекта в функции считывания?

юзаю python 2.6

заранее спасибо за помощь.



Офлайн

#2 Окт. 6, 2009 12:02:56

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

определить тип объекта

Типа этого?

try:v=int(s)
except ValueError:pass
Ваш вариант похож на индусский код: Если x - целое, то пусть так и остается, иначе … тоже пусть так и остается :)



Офлайн

#3 Окт. 6, 2009 12:26:51

Lunatic
От:
Зарегистрирован: 2009-09-01
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

определить тип объекта

igor.kaist
самому стыдно, поэтому в форум для новичков и пишу ;-)



Офлайн

#4 Окт. 6, 2009 15:01:21

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

определить тип объекта

А разве еще не придумали на питоне парсера ini файлов?



Офлайн

#5 Окт. 6, 2009 15:18:17

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

определить тип объекта

pasaranax
А разве еще не придумали на питоне парсера ini файлов?
стандартный ConfigParser возвращает строки….



Офлайн

#6 Окт. 6, 2009 15:44:08

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

определить тип объекта

Офлайн

#7 Окт. 6, 2009 18:20:07

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

определить тип объекта

o7412369815963
x.isdigit()
Черт.. Совсем начинаю забывать о стандартных методах над строками.



Офлайн

#8 Окт. 6, 2009 18:58:19

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

определить тип объекта

“ветеран кода” :) долгие боевые годы стирают твою память .. вот помню в 41м :)

Отредактировано (Окт. 6, 2009 19:00:44)

Офлайн

#9 Окт. 7, 2009 05:48:51

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

определить тип объекта

igor.kaist
стандартный ConfigParser возвращает строки….
getint(section, option)

A convenience method which coerces the option in the specified section to an integer.

getfloat(section, option)

A convenience method which coerces the option in the specified section to a floating point number.

getboolean(section, option)

A convenience method which coerces the option in the specified section to a Boolean value. Note that the accepted values for the option are “1”, “yes”, “true”, and “on”, which cause this method to return True, and “0”, “no”, “false”, and “off”, which cause it to return False. These string values are checked in a case-insensitive manner. Any other value will cause it to raise ValueError.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#10 Окт. 7, 2009 10:56:44

Lunatic
От:
Зарегистрирован: 2009-09-01
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

определить тип объекта

всем спасибо. ваши ответы оказались очень полезными.)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version