Найти - Пользователи
Полная версия: определить тип объекта
Начало » Python для новичков » определить тип объекта
1 2
Lunatic
Здраствуйте.

Так как мои скрипты начали использоваться на разных машинах с разной конфигурацией. Меня заставили хранить все настройки и все 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

заранее спасибо за помощь.
igor.kaist
Типа этого?
try:v=int(s)
except ValueError:pass
Ваш вариант похож на индусский код: Если x - целое, то пусть так и остается, иначе … тоже пусть так и остается :)
Lunatic
igor.kaist
самому стыдно, поэтому в форум для новичков и пишу ;-)
pasaranax
А разве еще не придумали на питоне парсера ini файлов?
igor.kaist
pasaranax
А разве еще не придумали на питоне парсера ini файлов?
стандартный ConfigParser возвращает строки….
o7412369815963
x.isdigit()
igor.kaist
o7412369815963
x.isdigit()
Черт.. Совсем начинаю забывать о стандартных методах над строками.
sypper-pit
“ветеран кода” :) долгие боевые годы стирают твою память .. вот помню в 41м :)
PooH
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.
Lunatic
всем спасибо. ваши ответы оказались очень полезными.)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB