Не делайте этого.
Сделайте это вместо:
% python -m this | sed 's/^R.*/======>&<======/'
РЕДАКТИРОВАТЬ: Для справки, вот как я бы рефакторинг этого кода ...
Всякий раз, когдаЯ вижу elif
, я думаю dict
.
#!/usr/bin/env python
class Shrink(object):
types = {
'p': 'Pointer',
'v': 'Value',
}
def shrink_this(self):
return "'Modify %s By %s'" % (
self.types.get(self.register, 'Unknown'), self.delta)
import unittest
class TestShrink(unittest.TestCase):
def test_p(self):
s = Shrink();
s.register = 'p'
s.delta = 'delta'
self.assertEquals("'Modify Pointer By delta'", s.shrink_this())
def test_u(self):
s = Shrink();
s.register = 'u'
s.delta = 'echo'
self.assertEquals("'Modify Unknown By echo'", s.shrink_this())
def test_v(self):
s = Shrink();
s.register = 'v'
s.delta = 'foxtrot'
self.assertEquals("'Modify Value By foxtrot'", s.shrink_this())
if __name__ == '__main__':
unittest.main()
Если вам нужно добавить r
для reference
или pp
для pointer-to-pointer
, только types
требует измененияи ваш код остается читабельным.
Читаемость имеет значение.