numpy
을 사용하는 경우 코드에 np.*
이 많이 있습니다.numpy 수식의 일시적인 와일드 카드 가져 오기/가독성
import numpy as np
y = np.sin(np.abs(np.linspace(0, 2*np.pi)))
이것은 수식을 어수선하게 만들고 덜 읽을 수있게합니다. 와일드 카드 가져 오기를 사용하여이 문제를 해결할 수 있습니다.
from numpy import *
y = sin(abs(linspace(0, 2*pi)))
그러나 와일드 카드 가져 오기는 거의 항상 나쁜 아이디어입니다.
수식 (또는 수학 코드 블록)으로 제한된 컨텍스트에 와일드 카드 가져 오기를 할 수 있는지 궁금합니다. 이렇게하면 가독성이 유지되고 네임 스페이스 오염이 더 쉽게 제어 할 수있는 작은 코드 영역으로 제한됩니다.
with import_wildcard(numpy):
y2 = sin(abs(linspace(0, 2*pi)))
질문 :
- 이 허용하는 몇 가지 언어 구조가 거기에 내가 이런 일을하고 싶습니다.
- 요청 자체가 합리적입니까, 아니면 잠재적 인 문제점을 간과합니까?
와일드 카드를 스코프에 임포트하면,'SyntaxWarning : import *는 모듈 레벨에서만 허용됩니다'. –
'from numpy import sin, abs, linespace, pi' – erip
접두어가 붙은'np.'가 일을 덜 읽을 수 있다는 것에 동의하지 않습니다. 사실, 나는 반대로 말하고 싶습니다. 독자는 어디에서 'abs'가 왔는지 확인할 필요가 없습니다. 'np.abs' 또는'builtins.abs'입니까? – erip