Skip to content

Jython ใช้ Java กับ Python : ตอนที่ 2 การใช้งานพื้นฐาน

หลังจากที่ผมได้แนะนำวิธีการติดตั้ง Jython กันไปแล้ว บทความนี้ผมจะพาผู้อ่านไปรู้จักกับความสามารถของ Jython กันครับ

ความแตกต่างระหว่าง Python กับ Jython

Python

  • พัฒนาบนภาษา C
  • รองรับแพลตฟอร์มหลากหลาย
  • คอมไพล์ได้ .pyc
  • ขยายความสามารถด้วยภาษา C
  • GIL 1
  • Python Garbage Collection

Jython

  • พัฒนาบนภาษา Java 100%
  • รันบน JVM ใด ๆ (ในปัจจุบัน 1.1 +)
  • คอมไพล์ได้ .class
  • ขยายความสามารถด้วยภาษา Java
  • multi-threaded ของจริง
  • Java garbage collection

การดึงความสามารถของ Java มาใช้งานร่วมกับ Python

เป็นความสามารถเด่นของ Jython ทำให้เราสามารถเรียกใช้ความสามารถของ Java มาใช้งานร่วมกับ Python ได้ ตัวอย่างเช่น

>>> from java.util import Date
>>> d = Date()
>>> print(d)
Sun Jan 04 12:15:32 ICT 2015
>>> from java.util import Random
>>> print(dir(Random))
['__class__', '__copy__', '__deepcopy__', '__delattr__', '__doc__', '__eq__', '_
_format__', '__getattribute__', '__hash__', '__init__', '__ne__', '__new__', '__
reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', '__subclasshoo
k__', '__unicode__', 'class', 'doubles', 'equals', 'getClass', 'hashCode', 'ints
', 'longs', 'nextBoolean', 'nextBytes', 'nextDouble', 'nextFloat', 'nextGaussian
', 'nextInt', 'nextLong', 'notify', 'notifyAll', 'seed', 'setSeed', 'toString',
'wait']

และการดึงความสามารถด้าน GUI ของ Java มาใช้งานร่วมกับ Jython

from javax.swing import *

def hello(event):
    print "Hello. I'm an event."

def test():
    frame = JFrame("Hello Jython")
    button = JButton("Hello", actionPerformed = hello)
    frame.add(button)
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
    frame.setSize(300, 300)
    frame.show()

test()

ผลลัพธ์

เราสามารถรันโค้ดไฟล์ py กับ Jython ได้ด้วยคำสั่ง

jython โค้ดที่ต้องการรัน.py

สำหรับบน Windows ใช้คำสั่ง

C:\jython2.7b3\jython โค้ดที่ต้องการรัน.py

เพิ่มเติมจากผู้เขียน ในขณะนี้ Jython ยังไม่รองรับ Python 3 นะครับ ติดตามบทความต่อไปนะครับ ขอบคุณครับ

Published on Categories ไม่มีหมวดหมู่Tags

About wannaphong

วรรณพงษ์ ภัททิยไพบูลย์ ผู้ดูแลเว็บ wannaphong.com และผู้เขียนบทความบล็อกนี้ นักศึกษาชั้นปีที่ 1 สาขาวิทยาการคอมพิวเตอร์และสารสนเทศ คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์ มหาวิทยาลัยขอนแก่น วิทยาเขตหนองคาย

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *