Pythonic Way to Implement switch-case and Read File by Line

  • Posted on: 9 January 2015
  • By: oon
Pythonic Way

Hari ini beberapa kali membaca artikel orang yang menuliskan kode dengan memberikan pernyataan sebagai "Pythonic Way" atau menuliskan kode dengan cara yang Python banget gitu deh :D

Ini beberapa contoh kodenya.

Yang pertama tentang implementasi switch-case (dalam bahasa pemrograman lain) yang efisien dituliskan di Python sebagai dictionary [1][2][3]:

def do_ping(self, arg):
    return 'Pong, {0}!'.format(arg)

def do_ls(self, arg):
    return '\n'.join(os.listdir(arg))

dispatch = {
    'ping': do_ping,
    'ls': do_ls,
}

def process_network_command(command, arg):
    send(dispatch[command](arg))

Yang kedua adalah mekanisme membaca File per baris, yang sudah turut menyertakan pengecekan jika ada exception, kemampuan buffer dalam memroses I/O:

with open(...) as f:
    for line in f:
        do something with line

statement with sekaligus mengelola proses membuka dan menutup file, termasuk menangani jika ada exception dalam blok tersebut.
dalam statement for line in f memperlakukan file object f sebagai iterable, dimana secara otomatis menggunakan buffered IO dan memory management sehingga tidak perlu kuatir mengenai penanganan untuk file yang berukuran besar.

selamat mencoba! :)

[1]http://codingstyleguide.com/style/180/python-pythonic-way-to-implement-s...
[2]http://programmers.stackexchange.com/questions/182093/why-store-a-functi...
[3]http://bytebaker.com/2008/11/03/switch-case-statement-in-python/
[2]http://stackoverflow.com/questions/8009882/how-to-read-large-file-line-b...

Tags: 

Add new comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
By submitting this form, you accept the Mollom privacy policy.