python


FrontPage

Python(Cpython)について

Cのライブラリが使えるpython。
とりあえず読もう
http://www.f7.ems.okayama-u.ac.jp/~yan/python/

Jythonについて

javaのクラスがつかえるpython。
GrxUIのプラグインを実行するための スクリプトはJythonで書かれている。
その上、プロジェクトファイル(~.xml)は jythonスクリプトを呼び出す。

数値と文字列の相互変換

int('0')== 0
float('0.0') == 0.0
str(0) == '0'
str(0.0) == '0.0'
str(1/40) == '0.0'
str(1.0/40.0) == '0.025'

javaのSystemクラスのメソッドをつかって環境変数を取得する

例,HOMEディレクトリのパスをstringで取得する

from java.lang import System
HOME = System.getenv("HOME")

(注意:jdk1.5以降ならこれで良いが、java1.4ではgetenv(string name)は非推奨メソッドなので
getenv(string name)の代わりにgetProperty(string name)を使う)

Jython入門


JythonとJavaのソースの量の比較

  • Jython
    from java.awt import * 
    from java.awt.event import *
    from javax.swing import *
    def punch(evt):
       print "punch"
    def kick(evt):
       print "kick"    
    f = JFrame("SwingTest")
    # jythonごと落ちる
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    c = f.getContentPane()
    b = [JButton("Punch", actionPerformed=punch),
    JButton("Kick", actionPerformed=kick)]
    b[0].setSize(20,20)
    b[1].setSize(20,20)
    c.setLayout(FlowLayout())
    c.add(b[0])
    c.add(b[1])
    f.setSize(200,200)
    f.setVisible(1)
  • Java
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class SwingTest{
       public static void main(String[] args){
           SwingFrame sf = new SwingFrame("SwingTest");
       }
    }
    class SwingFrame extends JFrame implements ActionListener {
       public SwingFrame(String str) {
           this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
           this.getContentPane().setLayout(new FlowLayout());
           this.setTitle(str);
           JButton[] b = new JButton[2];
           b[0] = new JButton("Punch");
           b[1] = new JButton("Kick");
           b[0].setSize(20,20);
           b[1].setSize(20,20);
           b[0].addActionListener(this);
           b[1].addActionListener(this);
           this.getContentPane().add(b[0]);
           this.getContentPane().add(b[1]);
           this.setSize(200, 200);
           this.setVisible(true);
       }
       public void actionPerformed(ActionEvent e) {
           JButton source = (JButton)e.getSource();
           if(source.getText().equals("Punch")){
               System.out.println("Punch");
           }
           else if(source.getText().equals("Kick")){
               System.out.println("Kick");
           }
       }
    }
  • なるべく簡略化した場合のJava
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class SwingTest2 extends JFrame implements ActionListener {
       public static void main(String[] args){
           new SwingTest2("SwingTest2");
       }
       public SwingTest2(String str) {
           this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
           this.getContentPane().setLayout(new FlowLayout());
           this.setTitle(str);
           JButton[] b = {new JButton("Punch"), new JButton("Kick")};
           for(int i=0; i<b.length; i++){
              b[i].setSize(20,20);
              b[i].addActionListener(this);
              this.getContentPane().add(b[i]);
           }
           this.setSize(200, 200);
           this.setVisible(true);
       }
       public void actionPerformed(ActionEvent e) {
           JButton source = (JButton)e.getSource();
           System.out.println(source.getText());
       }
    }

最新の20件

2020-11-14 2009-06-06 2009-05-11 2009-03-25 2009-03-24 2009-02-27 2008-12-03 2008-11-03 2008-10-29 2008-08-17 2008-08-13
  • python

今日の2件

  • counter: 318
  • today: 1
  • yesterday: 0
  • online: 1