ผมขอแนะนำโมดูล python-modernize เป็นโมดูลที่ช่วยแปลงโค้ดให้ใช้งานได้ทั้ง Python 2 และ Python 3 โดยใช้โมดูล six และโมดูล 2to3 เข้ามาใช้งานร่วมด้วย ใช้งานได้ทั้ง Python 2 และ Python 3
สามารถติดตั้งได้โดยใช้คำสั่ง pip (ต้องติดตั้ง git ก่อนใช้งานคำสั่งนี้) :
pip install git+https://github.com/mitsuhiko/python-modernize.git
โมดูลในบทความนี้แปลงได้เฉพาะไวยากรณ์ของ Python 2 และ Python 3 และแปลงได้เฉพาะไลบรารีที่เป็นไลบรารีมาตรฐานของภาษาไพทอนเท่านั้น
การใช้งาน
ผมมีไฟล์โค้ด Python 2 ชื่อ hello.py โดยมีโค้ดดังนี้
[python]
name = raw_input("Your name : ")
print "Hi "+name
x = input("Num : ")
for x in xrange(3):
print x
else:
print 'Final x = %d' % (x)
[/python]
เปิดคอมมานด์ไลน์ขึ้นมา ใช้คำสั่ง
python-modernize -w hello.py
-w คือ ทำการบันทึกไฟล์ที่แปลงทับไฟล์เดิม และสำรองไฟล์โค้ดเก่าไว้
คำสั่งนี้มีการใช้งานคล้าย ๆ กับคำสั่งของ 2to3 สามารถใช้ไวยากรณ์ของ 2to3 ได้เลยครับ
อ่านเพิ่มเติม แปลงโค้ด Python ด้วย 2to3
เมื่อทำการแปลงโค้ด hello.py
ผลลัพธ์โค้ด hello.py
[python]
from __future__ import print_function
from __future__ import absolute_import
from six.moves import range
from six.moves import input
name = input("Your name : ")
print("Hi "+name)
x = eval(input("Num : "))
for x in range(3):
print(x)
else:
print('Final x = %d' % (x))
[/python]
โค้ดนี้สามารถใช้งานได้ทั้ง Python 2.6 + และ Python 3.2 + แต่ต้องทำการติดตั้งโมดูล six และโมดูล python-future ให้เรียบร้อยก่อนรันโค้ดครับ
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ
0 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)