가장 쉬운 변수 공유 (클래스를 활용한 변수 공유) [Python] by 바죠

가장 쉬운 변수 공유 (클래스를 활용한 변수 공유) [Python]

포트란 77의 common 문 사용과 같이 특정 변수들을 한 곳에 모아 두고 다른 서브루틴들이 특정 무리 변수들을 활용할 수 있게 할 수 있다. 
변수들의 종류별로 사용자가 이름을 붙인 common 문을 선언하면 보다 더 구체적인 변수 무리들을 별도로 관리할 수 있다. 
또한, 이들 common 문을 별도의 파일 속에 넣고 파일로 저장할 수 있다.
특정 변수들이 필요한 경우 그 파일을 include 하는 방식으로 프로그램을 편집할 수 있다. 
이렇게 전체 프로그램을 관리할 수 있다. 이렇게 할 경우, 흩어져 있을 수 있는 common 문 변수들이 완전히 동일하게 편집된다.
강제적으로 동일한 하나의 내용물이 되게할 수 있다. 
즉, 꼭 필요한 서브루틴, 함수들에서 파일을 include 하는 식이다. 
따라서, 파일은 한 번만 수정되고 다시 컴파일하면 동일한 변경이 전체 프로그램에서 공통으로 사용된다.
옛날 컴퓨터 프로그램들을 보면 배열, 배열크기, 주요 파라메터들을 이렇게 관리한다. 아주 성공적인 방식이다. 

포트란 90에서는 module 을 선언하므로써 이를 할 수 있다. 
물론, module은 common 문에서 보다 더 특정 변수들과 이와 연관된 함수들을 쉽게 정의하고 잘 활용할 수 있도록 한다.
따라서, 보다 더 쉽게 특정 변수들을 용이하게 관리할 수 있다.

파이썬에서도 이러한 기능을 이용할 수 있다. 포트란 90의 module 과 같은 것이 class이다.
주요 파라메터들을 하나의 파일에 보관할 수 있다. 
class를 선언하고 이곳에 원하는 파라메터들을 저장한다. 
독립적인 파일로 보관할 수 있다. 이것이 파이썬의 모듈이되고, 다른 파이썬 프로그램에서 읽어드릴 수 있다. 
즉, import 할 수 있다. 

특별히 파이썬에서 말하는 모듈이라는 것이 있다. 예를 들어, 함수, 클래스를 만들어서 디렉토리에 보관하고 있다. 이것도 파이썬에서는 모듈이다. numpy 같이 이미 만들어진 모듈들이 많이 있다. 필요할 때 불러서 사용할 수 있다. import 할 수 있다.


 cat test.py 
class Const():
    f1=14.9e9
    f2=40.5e9

def abc():
    Const.f1=-10.
    Const.f2=-20.

print(Const.f1)
print(Const.f2)
Const.f1=-1.
Const.f2=-2.
print(Const.f1)
print(Const.f2)
abc()
print(Const.f1)
print(Const.f2)

 python test.py 
14900000000.0
40500000000.0
-1.0
-2.0
-10.0
-20.0


덧글

댓글 입력 영역

최근 포토로그