2017-05-23 4 views
-3

그래서 파이썬 프로그램에서 자바 함수를 사용할 수 있다면 궁금한가요?파이썬 프로그램에서 자바 코드를 사용할 수 있습니까?

내가 예를 들어 목록

정렬되지 않은 한 파이썬 스크립트가 있다고 가정하자 :

//main.py

pylist = ['4', '2', '5', '1', '3'] 

#call java selection sort here 

#then print sorted list 
for x in pylist: 
    print(x) 

을 내가 사용하는 파이썬 스크립트의 목록을 정렬 할 Java 클래스의 알고리즘 이것이 가능합니까? 자바 패키지를 파이썬 스크립트로 가져 오는 것과 같이 간단하고 "selectionsort (pylist)"와 같은 명령문을 사용하면됩니까?

//sort.java

import java.util.Arrays; 

public class sortexample 
{ 
    public static void main(String[] args) 
    { 
     int[] ar = {4, 2, 5, 1, 3}; 
     printarray(ar); 
     System.out.printf("%n"); 
     Arrays.sort(ar); 
     printarray(ar); 
    } 

    public static void printarray(int[] array) 
    { 
     for(int a: array) 
     { 
      System.out.println(a); 
     } 
    } 


    public static int[] selectionsort(int[] arr) 
    { 
     for(int i = 0; i < arr.length - 1; i++) 
     { 
      int index = i; 
      for(int j = i + 1; j < arr.length; j++) 
       if(arr[j] < arr[index]) 
       { 
        index = j; 
       } 

      int smallerNumber = arr[index]; 
      arr[index] = arr[i]; 
      arr[i] = smallerNumber; 
     } 
     return arr; 
    } 
} 
+0

표준'sort' 및'sorted()'메소드는 Timsort의 C 기반 구현이 매우 정교합니다. 그래서 당신이 정말로 당신 자신의 정렬을 구현할 필요가있는 경우를 제외하고, 그것들을 사용해야한다. – Mikael

+0

예! ** ** [jython] (http://www.jython.org/)을 사용하는 경우. –

+0

나는 그것이 효과가 있다고 생각하지 않는다. 자이 썬 : 자바 플랫폼 용 파이썬 –

답변

1

번호하지만 당신은 파이썬 코드 대신 사용하기에 자바 코드를 다시 작성을 시도 할 수 있습니다 :

선택 정렬은 여기에서 비롯됩니다. 이는 Java가 JVM (Java Virtual Machine)에서 실행되고 실행되기 전에 컴파일이 필요하기 때문입니다. 반면 Python은 컴파일을 필요로하지 않는 스크립팅 언어입니다. 두 언어는 내가 익숙한 어떤 환경에서도 서로 호환되지 않습니다.

Python 인터프리터는 Python을 필요로하고 Java 구문을 이해할 수 없습니다.

매우 특정한 상황에서 함께 사용할 수있는 언어가 있습니다. 예를 들어 JSNI로 작성하면 GWT 프레임 워크에서 자바 스크립트로 자바 스크립트를 작성할 수 있습니다.

0

Jython은 CPython 2.7과 호환되며 Java 클래스에 액세스 할 수 있습니다.

의 예문에 대한 확인 here,하지만 당신은 같은 것을 필요 나는 상상 : 자바 유형과 잘 변환되지 않을 수 있습니다

>>> from sort import sortexample 
>>> sample = [2,7,6,5,4,3,1] 
>>> sortexample.selectionsort(sample) 

합니다.

아니면 implement selection sort 파이썬으로 할 수 있습니다.

0

완성을 위해 더 많은 것들 : 물론 파이썬 스크립트 내에서 자바 코드를 사용할 수 있습니다.

Java 코드를 컴파일하기 만하면 JVM 실행을 트리거하기 위해 서브 프로세스 호출을 작성합니다.

그러나 합리적인 해결책에 가장 가까운 것은 자이 썬입니다. 이것은 당신이 기술적으로 JVM을 실행한다는 것을 의미하지만 그것은 파이썬이 가능합니다.