나는이 파일은 함수가 outlet1라는 한 파일 outSimulation.py이이 함수 내에서 데이터외부 파일에서 함수 내의 변수에 액세스 하시겠습니까?
내가main.py라는 다른 프로그램에서이 데이터 변수에 액세스 할
라는 변수가있다 나는 절대 수입으로 시도했다.
from outSimulation import outlet1
values = outlet1.data()
그러나 그것은 효과가 없다. 어떤 도움을 주셔서 감사합니다.
나는이 파일은 함수가 outlet1라는 한 파일 outSimulation.py이이 함수 내에서 데이터외부 파일에서 함수 내의 변수에 액세스 하시겠습니까?
내가main.py라는 다른 프로그램에서이 데이터 변수에 액세스 할
라는 변수가있다 나는 절대 수입으로 시도했다.
from outSimulation import outlet1
values = outlet1.data()
그러나 그것은 효과가 없다. 어떤 도움을 주셔서 감사합니다.
*은 함수 외부의 함수에 로컬 인 변수에 액세스 할 수 없습니다. 당신이 이 outlet1()
으로을 호출되는 함수에서 data
의 값에 액세스하려면
data
을 통과해야한다. 당신이outlet1()
완료가 실행 한 후 data
의 값에 액세스하려면data
을 반환해야 outlet1()
에서 (아마도 다른 것들과 함께).또는 data
을 모듈 수준 변수로 만들 수 있습니다. 당신이 outlet1()
내 data
뭔가를 할당 가정하면, 당신은 global
키워드를 사용하여 그것을
def outlet1():
global data
# code
data = ...
# more code
을 모듈 수준 변수를 만들 것이다 그러나 이것은 다른 방법보다 깨끗 경향이있다. outlet1()
이 클래스 내에서 정의 된 경우
는 다른 솔루션이 있습니다,하지만 문제는 내가 그로하지 않도록 그런 경우가 아니라 제안합니다. *
은 음 ... 어, 신경 쓰지 않았다. 디버깅을 위해 할 수있는 이상한 점이 있지만, 목적에 맞게 고려하지 않는 것이 좋습니다.
함수는 클래스가 아니며 사용자가하려는 작업을 수행 할 수 없도록 특별히 설계되었습니다. 이것이 기능적 프로그래밍의 전제이며 캡슐화의 개념입니다. 함수가 클래스 인 경우에도 변수를 함수로 호출하려고하기 때문에 코드가 작동하지 않습니다 (()
을 data
에 추가).
데이터를 함수 내에서 참조 할 수있는 전역 변수로 만들거나 원래 반환 값과 데이터 변수 (지저분한)를 포함하여 여러 항목이 포함 된 튜플을 반환하도록 할 수 있습니다. 또한이 방법이 문제 영역에 적합한 경우 함수를 객체 지향 방식으로 다시 작성할 수도 있습니다.이 경우 위의 코드가 더 적합합니다.
왜 외부 파일에'data' 변수를 전역으로 만들고'outSimulation.data'를 사용하여 액세스합니까? – user7342539
'data'는 함수'outlet1()'에 대한 지역 변수이므로,'outlet1 '에 의해 접근 할 수 없습니다.data()' – ettanany
에 액세스 할 수 없다면 먼저 콘센트 객체를 인스턴스화해야합니다 (우리가 말하는 클래스라고 가정). – arlyon