Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 5, 2014 20:24:39

BossBox
Зарегистрирован: 2014-02-23
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Возможно ли как упростить используемый код?

Подскажите возможно ли как упростить данный код, записать как то иначе, более компактно..

		self.minimapRead['minimapButton'] = getattr(Keys, self.config.readString('minimapButton', ''), None)
		
		self.minimapRead['minimapEnable'] = self.config.readInt('minimapEnable')
		self.minimapRead['minimapRegime'] = self.config.readInt('minimapRegime')
		self.minimapRead['minimapMarker'] = self.config.readInt('minimapMarker')
		self.minimapRead['minimapPulses'] = self.config.readInt('minimapPulses')
		self.minimapRead['dynamicLaunch'] = self.config.readInt('dynamicLaunch')
		self.minimapRead['minimapNotice'] = self.config.readInt('minimapNotice')
		self.minimapRead['vehicleSquare'] = self.config.readInt('vehicleSquare')
		self.minimapRead['strategSquare'] = self.config.readInt('strategSquare')
		self.minimapRead['vehicleMarker'] = self.config.readInt('vehicleMarker')
		self.minimapRead['vehicleHeight'] = self.config.readInt('vehicleHeight')
		self.minimapRead['vehicleHidden'] = self.config.readInt('vehicleHidden')
		self.minimapRead['vehicleDetect'] = self.config.readInt('vehicleDetect')
		self.minimapRead['minimapMethod'] = self.config.readInt('minimapMethod')
		self.minimapRead['minimapLength'] = self.config.readInt('minimapLength')
		self.minimapRead['callmapUpdate'] = self.config.readInt('callmapUpdate')
		self.minimapRead['minimapRemain'] = self.config.readInt('minimapRemain')
			
		self.minimapRead['minimapSpeech'] = self.config.readString('minimapSpeech', 'RU')
		
		if self.minimapRead['minimapMarker'] == 1: self.minimapOpen['minimapMarker'] = ['player','postmortem']
		if self.minimapRead['minimapMarker'] == 2: self.minimapOpen['minimapMarker'] = ['backgroundMarker']
		
		if self.minimapRead['vehicleMarker'] == 1: self.minimapOpen['vehicleMarker'] = ('arrow')
		if self.minimapRead['vehicleMarker'] == 2: self.minimapOpen['vehicleMarker'] = ('eye')
		
		if self.minimapRead['vehicleMarker'] > 1: self.minimapRead['vehicleMarker'] = 1
		
		if self.minimapRead['vehicleDetect'] == 1: self.minimapOpen['vehicleDetect'] = ('green')
		if self.minimapRead['vehicleDetect'] == 2: self.minimapOpen['vehicleDetect'] = ('red')
		if self.minimapRead['vehicleDetect'] == 3: self.minimapOpen['vehicleDetect'] = ('purple')
		
		if self.minimapRead['vehicleDetect'] > 1: self.minimapRead['vehicleDetect'] = 1
		
		if self.minimapRead['minimapPulses'] == 1: self.minimapOpen['minimapPulses'] = ['firstEnemy']
		if self.minimapRead['minimapPulses'] == 2: self.minimapOpen['minimapPulses'] = ['enemySPG']
		if self.minimapRead['minimapPulses'] == 3: self.minimapOpen['minimapPulses'] = ['attack']
		if self.minimapRead['minimapPulses'] == 4: self.minimapOpen['minimapPulses'] = ['attackSPG']
		if self.minimapRead['minimapPulses'] == 5: self.minimapOpen['minimapPulses'] = ['attackSenderSPG']
		if self.minimapRead['minimapPulses'] == 6: self.minimapOpen['minimapPulses'] = ['follow_me']
		if self.minimapRead['minimapPulses'] == 7: self.minimapOpen['minimapPulses'] = ['reloading_gun']
		if self.minimapRead['minimapPulses'] == 8: self.minimapOpen['minimapPulses'] = ['negative']
		if self.minimapRead['minimapPulses'] == 9: self.minimapOpen['minimapPulses'] = ['positive']
		
		if self.minimapRead['minimapPulses'] == 10: self.minimapOpen['minimapPulses'] = ['stop']
		if self.minimapRead['minimapPulses'] == 11: self.minimapOpen['minimapPulses'] = ['help_me']
		if self.minimapRead['minimapPulses'] == 12: self.minimapOpen['minimapPulses'] = ['help_me_ex']
		if self.minimapRead['minimapPulses'] == 13: self.minimapOpen['minimapPulses'] = ['turn_back']
		
		if self.minimapRead['minimapPulses'] > 1: self.minimapRead['minimapPulses'] = 1
		
		if self.minimapRead['minimapNotice'] == 1: self.minimapOpen['minimapNotice'] = ('chat_shortcut_common_fx')
		if self.minimapRead['minimapNotice'] == 2: self.minimapOpen['minimapNotice'] = ('enemy_sighted_for_team')
		if self.minimapRead['minimapNotice'] == 3: self.minimapOpen['minimapNotice'] = ('gun_intuition')
		if self.minimapRead['minimapNotice'] == 4: self.minimapOpen['minimapNotice'] = ('sight_convergence')
		if self.minimapRead['minimapNotice'] == 5: self.minimapOpen['minimapNotice'] = ('gun_reloaded')
		
		if self.minimapRead['minimapNotice'] > 1: self.minimapRead['minimapNotice'] = 1

Отредактировано BossBox (Июнь 5, 2014 20:24:53)

Офлайн

#2 Июнь 5, 2014 20:32:21

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Возможно ли как упростить используемый код?

BossBox
возможно ли как упростить данный код
Да.



Офлайн

#3 Июнь 5, 2014 21:05:13

BossBox
Зарегистрирован: 2014-02-23
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Возможно ли как упростить используемый код?

doza_and

Типо какой вопрос такой и ответ?) Как можно упростить, опишите пожалуйста или покажите на примере.

Отредактировано BossBox (Июнь 5, 2014 21:15:43)

Офлайн

#4 Июнь 5, 2014 21:15:37

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Возможно ли как упростить используемый код?

d ={1: 'chat_shortcut_common_fx'
2:  'enemy_sighted_for_team'}
self.minimapOpen['minimapNotice'] = d[self.minimapRead['minimapNotice']]

Офлайн

#5 Июнь 5, 2014 21:19:42

BossBox
Зарегистрирован: 2014-02-23
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Возможно ли как упростить используемый код?

Singularity

Что то я не вижу тут ничего упрощенного, выйдет тоже самое кол-во строк..

Офлайн

#6 Июнь 5, 2014 21:27:06

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Возможно ли как упростить используемый код?

Наибольшее упрощение будет если конфигурационный файл писать в нормальном формате типа json,yaml,pickle. Тогда загрузка будет в одну строчку.

у вас по крайней мере:

for i in 'minimapEnable minimapRegime'.split():
      self.minimapRead[i] = self.config.readInt(i)
А если в файле писать строку а не код то и преобразование в int с последующим if не потребуется.



Офлайн

#7 Июнь 5, 2014 21:27:41

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Возможно ли как упростить используемый код?

BossBox
Что то я не вижу тут ничего упрощенного
Твои проблемы.
l = ['minimapRegime',
'minimapMarker',
'minimapPulses',
'dynamicLaunch',
'minimapNotice',
'vehicleSquare',
'strategSquare',
'vehicleMarker',
'vehicleHeight',
'vehicleHidden',
'vehicleDetect',
'minimapMethod',
'minimapLength',
'callmapUpdate',
'minimapRemain']
for key in l:
    self.minimapRead['key'] = self.config.readInt('key')

Офлайн

#8 Июнь 5, 2014 21:44:24

BossBox
Зарегистрирован: 2014-02-23
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Возможно ли как упростить используемый код?

Спасибо за вежливость в ответе.

Офлайн

#9 Июнь 5, 2014 21:50:00

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Возможно ли как упростить используемый код?

BossBox
ну вот надо тебе minimapPulses сменить на Pulses что ты с этим будешь делать?

		if self.minimapRead['minimapPulses'] == 1: self.minimapOpen['minimapPulses'] = ['firstEnemy']
		if self.minimapRead['minimapPulses'] == 2: self.minimapOpen['minimapPulses'] = ['enemySPG']
		if self.minimapRead['minimapPulses'] == 3: self.minimapOpen['minimapPulses'] = ['attack']
		if self.minimapRead['minimapPulses'] == 4: self.minimapOpen['minimapPulses'] = ['attackSPG']
		if self.minimapRead['minimapPulses'] == 5: self.minimapOpen['minimapPulses'] = ['attackSenderSPG']
		if self.minimapRead['minimapPulses'] == 6: self.minimapOpen['minimapPulses'] = ['follow_me']
		if self.minimapRead['minimapPulses'] == 7: self.minimapOpen['minimapPulses'] = ['reloading_gun']
		if self.minimapRead['minimapPulses'] == 8: self.minimapOpen['minimapPulses'] = ['negative']
		if self.minimapRead['minimapPulses'] == 9: self.minimapOpen['minimapPulses'] = ['positive']
		

Та и лично мне проще как я написал выше.

Отредактировано Singularity (Июнь 5, 2014 21:50:12)

Офлайн

#10 Июнь 5, 2014 21:57:25

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Возможно ли как упростить используемый код?

https://docs.python.org/2/library/configparser.html

import json
config = {'key1': 'value1', 'key2': 'value2'}
with open('config.json', 'w') as f:
    json.dump(config, f)
with open('config.json', 'r') as f:
    config = json.load(f)
config['key3'] = 'value3'
with open('config.json', 'w') as f:
    json.dump(config, f)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version