Python & JSL 함수JMP에서 Python으로: 데이터프레임 열을 데이터테이블 열로 변환하는 모범 사례와 계산 속도에 미치는 영향 방금 이 멋진 새 기능에 대해 알게 되었습니다.
import jmp
jmp.globals['pi'] = 3.1415927
jmp.globals['bB'] = 'Bumble Bee'
print( jmp.globals.items() )
JSL 네임스페이스에서 변수를 정의하려면 - 파이썬 Get() 의 푸시 버전과 유사합니다.
몇 가지 제한 사항이 있습니다. 예를 들어, 현재 jmp.globals는 JSL 함수를 지원하지 않습니다.
::f= function({x},x);
x="hello";
y=5;
z={1,2,3};
aa= associative Array({1,2});
Python Submit("
import jmp
print(jmp.globals)");
응답:

아마도 관련된 문제일까요? :
다음 JSL 코드를 사용하여 run_jsl을 통해 함수를 생성하려고 시도했습니다.
import jmp
jmp.run_jsl('x="hello";Caption(x)') # OK
jmp.run_jsl('f= function({x},x)') # crash
... 충돌이 발생해요!?!
코드를 줄별로 실행하면 다음과 같은 오류 메시지가 나타납니다.

자동화 및 스크립팅Re: Python & JSL 함수버그. JMP 19?
제 컴퓨터에서는 다른 오류 메시지가 나타났지만 run_jsl()이 할당만 하는 것이 아니라 eval(f = function({x},x))가 발생하는 것처럼 작동하는 것 같습니다.

JSL에서 실행만 하면 Python에서 본 내용을 재현할 수 있었습니다.
Re: Python & JSL 함수네, @hogi 님 이 JMP 19.0.1을 사용하고 있습니다. 지원팀에 이메일을 보내서 이 문제가 알려진 버그인지 물었습니다.
Re: Python & JSL 함수JMP19와 JMP19.0.1(Windows 버전)에서도 동일한 문제가 발생합니다.
JMP 18에서는 문제가 없습니다.
흥미로운 것은
f = 함수({x},x)를 평가합니다.
와 다르다
f = 함수({x},x).
그러면 인수의 반환 값을 평가하기 전에 인수를 평가한다는 말인가요?
Eval(print(1);Parse("print(2)"));
상당히 다릅니다:
- Python 코드를 사용하면 JMP가 내 시스템에서 충돌합니다(Win과 Mac 간에 차이가 있을까요?)
- eval(f = function({x},x))을 사용하면 JMP에서 JMP 경고가 표시되고 계속 작동합니다.
