Latest posts on Хочу избавиться от кучи if'ов! topichttp://python.su/forum/topic/523/2007-03-09T20:19:15+02:00Общий :: Python для экспертов :: Хочу избавиться от кучи if'ов!
2007-03-09T20:19:15+02:00-=<fantom>=-3786Я всегда юзаю ConfigPraser. Странновато параметры в конфиге параметры размещаются через ConfigParser, но тем не менее работает.<br/>Хотя Славоник молодец - выбрал довольно симпотный путь. +ипон.<br/>А от себя могу добавить - можно воспользоваться модулем cPiсle - хоть компилируй, хоть не компилируй - результат будет тот же. А ушлые юзвери вряд ли что поймут. А если средствами Python'a ещё зипануть….;)
Общий :: Python для экспертов :: Хочу избавиться от кучи if'ов!
2007-03-07T08:43:30+02:00proDiva3735<strong>OlDer</strong><br/>Это тоже хороший вариант, может и переделаю))
Общий :: Python для экспертов :: Хочу избавиться от кучи if'ов!
2007-03-06T15:47:37+02:00OlDer3723<blockquote><em>proDiva</em><br/><strong>xonix</strong><br/>Именно такого решения и ждала, спасибо!</blockquote>Я бы все-таки посоветовал использовать хотя бы стандартный модуль ConfigParser. Рано или поздно понадобится что-то большее чем просто файл с четырьмя строчками. Да и пользователям легче будет понимать структуру нормального ini-файла, вроде такого:<div class="code"><pre>[Database]<br/>host = dbhost<br/>port = port</pre></div>
Общий :: Python для экспертов :: Хочу избавиться от кучи if'ов!
2007-03-06T08:21:37+02:00proDiva3705<strong>xonix</strong><br/>Именно такого решения и ждала, спасибо!
Общий :: Python для экспертов :: Хочу избавиться от кучи if'ов!
2007-03-06T08:17:42+02:00proDiva3704<blockquote><em>slav0nic</em><br/>обычно делается config.py где объявляются перменные, после чего import config;print config.var1 и тп<br/>нафига парсить-то%)?</blockquote>Если сделать config.py, то при создании exe-шника он в него включится. А у меня пользователи будут подключаться к разным базам, поэтому хочу выделить файл подключения.
Общий :: Python для экспертов :: Хочу избавиться от кучи if'ов!
2007-03-06T01:15:10+02:00xonix3696Да, написать так на питоне еще нужно постараться :-)<br/>А как-то так разве нельзя?<br/><br/><div class="code"><pre><span class="k">try</span><span class="p">:</span>
<span class="n">db</span><span class="p">,</span> <span class="n">host</span><span class="p">,</span> <span class="n">user</span><span class="p">,</span> <span class="n">password</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="s">"connect.txt"</span><span class="p">)</span><span class="o">.</span><span class="n">read</span><span class="p">()</span><span class="o">.</span><span class="n">split</span><span class="p">()</span>
<span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
<span class="k">print</span> <span class="s">'Wrong connect file format!'</span>
</pre></div>
Общий :: Python для экспертов :: Хочу избавиться от кучи if'ов!
2007-03-05T22:28:29+02:00slav0nic3692обычно делается config.py где объявляются перменные, после чего import config;print config.var1 и тп<br/>нафига парсить-то%)?
Общий :: Python для экспертов :: Хочу избавиться от кучи if'ов!
2007-03-05T16:16:06+02:00pythonwin3683<strong>proDiva</strong> посмотри питоновский пакет configobj
Общий :: Python для экспертов :: Хочу избавиться от кучи if'ов!
2007-03-05T16:09:26+02:00slivlen3682Я бы вообще сменил формат конфига на что-то вроде такого:<br/>dbname='db'<br/>host='hostname'<br/>user='username'<br/>password='megapassword'<br/>а данные после разбора хранил бы в словаре(dict), чтоб не было зависимости от последовательности строк.
Общий :: Python для экспертов :: Хочу избавиться от кучи if'ов!
2007-03-05T16:06:40+02:00Александр Кошелев3681<div class="code"><pre><span class="n">file_con</span><span class="o">=</span><span class="nb">open</span><span class="p">(</span><span class="s">"./connect.txt"</span><span class="p">,</span> <span class="s">'r'</span><span class="p">)</span>
<span class="n">db</span><span class="o">=</span> <span class="n">file_con</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
<span class="n">host</span><span class="o">=</span><span class="n">file_con</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
<span class="n">user</span><span class="o">=</span><span class="n">file_con</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
<span class="n">password</span><span class="o">=</span><span class="n">file_con</span><span class="o">.</span><span class="n">readline</span><span class="p">()</span>
<span class="n">file_con</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
</pre></div>?
Общий :: Python для экспертов :: Хочу избавиться от кучи if'ов!
2007-03-05T15:59:50+02:00proDiva3680Имеется фрагмент кода:<br/><br/>file_con=open(“./connect.txt”, ‘r’)<br/>sss=“”.join(file_con.readlines())<br/>i=1<br/>for x in sss.split('\n'):<br/> if i == 1:<br/> db=x<br/> i+=1<br/> elif i == 2:<br/> host=x<br/> i+=1<br/> elif i == 3:<br/> user=x<br/> i+=1<br/> else:<br/> password=x<br/> i+=1<br/><br/>в файлике лежат данные для подключения:<br/>“db<br/>host<br/>user<br/>password”<br/><br/>Как бы сделать покрасивше?)))