[TasPython] Διαλέξτε το στυλ σας
Themistoklis Savvidis
themhs at gmail.com
Sat Sep 4 17:45:17 CEST 2010
2010/9/1 Dimitris Glezos <glezos at indifex.com>
> Πώς θα υλοποιούσατε την self.cycle() στη δική σας κλάση;
>
> LEVEL_VALUES = {
> 0: 'Normal',
> 1: 'High',
> 2: 'Top',
> }
>
> ### 1 -- "The One-liner Showoff"
>
> def cycle(self):
> self.level = (self.level + 1) % max(LEVEL_VALUES.keys())
>
Μας αρέσει αυτός ο c-like τρόπος.
Παρεμπιπτόντως, σε περιπτώσεις που θέλουμε το loop μας να φτάνει σε κάποιον
σταθερό αριθμό η τιμή του οποίου δε μας ενδιαφέρει - σε αντίθεση με την τάξη
μεγέθους του - μπορούμε να διαλέγουμε (μία δύναμη του 2) μείον 1 ώστε να
αντικαταστήσουμε το υπολογιστικά ακριβό mod με ένα ταχύτατο bitwise and:
self.max_value = 255
def cycle(self):
self.level = (self.level + 1) & self.max_value
Προφανώς, στη προκειμένη περίπτωση μπορεί το optimization αυτό να είναι
παντελώς άχρηστο αλλά υπάρχουν εφαρμογές που καθιστούν απαραίτητες τέτοιου
είδους μεθοδολογίες.
--
Themis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/taspython/attachments/20100904/71a325f4/attachment.html>
More information about the TasPython
mailing list