Найти - Пользователи
Полная версия: Возможно ли как упростить используемый код?
Начало » Python для новичков » Возможно ли как упростить используемый код?
1 2
BossBox
Подскажите возможно ли как упростить данный код, записать как то иначе, более компактно..

		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
doza_and
BossBox
возможно ли как упростить данный код
Да.
BossBox
doza_and

Типо какой вопрос такой и ответ?) Как можно упростить, опишите пожалуйста или покажите на примере.
Singularity
d ={1: 'chat_shortcut_common_fx'
2:  'enemy_sighted_for_team'}
self.minimapOpen['minimapNotice'] = d[self.minimapRead['minimapNotice']]
BossBox
Singularity

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

у вас по крайней мере:
for i in 'minimapEnable minimapRegime'.split():
      self.minimapRead[i] = self.config.readInt(i)
А если в файле писать строку а не код то и преобразование в int с последующим if не потребуется.
Singularity
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')
BossBox
Спасибо за вежливость в ответе.
Singularity
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
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)
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