Zuerst Code ist un-pythonic . Sie verwenden 'self'
für eine Funktion. "self"
ist in der Regel für eine Klasse reserviert. Also beim Lesen Ihres Codes fühlt es sich unnatürlich. Zweitens ist mein Stil zu "="
Zeichen für die Lesbarkeit ausgerichtet. Mein Rat ist, neu zu beginnen - Verwenden Sie Standard Pythonic Konventionen. Sie können dies durch gehen durch python Tutorials.
Exception werfen früh und -nur oft, wenn der Code ausgeführt wird beendet. Sie könnten auch einige der Namensgebung außerhalb des try/except
Block bewegen.
def get_wiktionary_audio(self):
'''function for adding audio path to a definition, this is meant to be run before trying to get a specific URL'''
#this path is where the audio will be saved, only added the kwarg for testing with a different path
path = "study_audio/%s/words" % (self.word.language.name)
try:
wiktionary_url = "http://%s.wiktionary.org/wiki/FILE:en-us-%s.ogg" % (self.word.language.wiktionary_prefix, self.word.name)
wiktionary_page = urllib2.urlopen(wiktionary_url)
wiktionary_page = fromstring(wiktionary_page.read())
file_URL = wiktionary_page.xpath("//*[contains(concat(' ', @class, ' '), ' fullMedia ')]/a/@href")[0]
file_number = len(self.search_existing_audio())
relative_path = '%s/%s%s.ogg' % (path, self.word.name, file_number)
full_path = '%s/%s' % (settings.MEDIA_ROOT, relative_path)
os.popen("wget -q -O %s 'http:%s'" % (full_path, file_URL))
except Exception as e : print e
WordAudio.objects.create(word=self.word, audio=relative_path, source=wiktionary_url)
return True
* "alle Ausnahmen manuell lesen und einen Fall für jeden machen" * ... das ist, was Sie tun müssen. Blindes Abfangen von Ausnahmen ist niemals eine gute Idee. – solarissmoke
@solarisssmoke ... Nur Ausnahme fangen, die Sie behandeln können. Nicht jede Ausnahme. Einige müssen übergangen werden. Oder der Ausnahmeblock wäre länger als der Testblock. Verwenden Sie die Ausnahme, um mehr Code als Python-Codierungsstil hinzuzufügen. – Merlin
Hier gibt es viel zu wenig Informationen. Die Frage ist, unter welchen Umständen möchten Sie False zurückgeben? Der Grund dafür, dass Code schlecht ist, ist, dass er zu viele Dinge zusammenfasst und für alle möglichen Fehler Falsch zurückgibt. Um zu entscheiden, wie man es besser schreibt, müssen Sie detaillierter darüber nachdenken, was in diesem Code passieren kann und was Sie dagegen tun wollen. – BrenBarn