01. Template
1. Eclipse ▶ Window ▶ Preferences
2. utf-8 형식의 한글 인코딩 방식을 지정합니다.
- Java, C언어처럼 시작할 main 함수가 없음을 파이썬이 실행시 '_name_' 시스템 변수의 값을 비교하여
'_main_'이면 블럭안의 코드를 실행합니다.
- pass: 추후 블럭을 구현한다는 표시
-------------------------------------------------------------------------------------
# -*- coding: utf-8 -*-
if __name__ == '__main__':
pass
-------------------------------------------------------------------------------------
3. 모듈 생성시 template을 선택합니다.
02. 모듈과 패키지의 사용
- 데이터 처리를 위한 함수들을 모아놓은 것을 모듈이라고 합니다.
- 개발자가 다양한 분야의 SW를 개발할 수 있도록 미리 파이썬 언어에서 지원하는 것을
내장 모듈이라고 합니다.
- 개발자는 자신이 필요한 모듈을 생성 할 수 있습니다.
- 모듈은 import하여 사용합니다.
import 모듈이름
import 패키지 이름.모듈 이름
import 이름이 긴 패키지.모듈명 as 별명
from 모듈 이름 import 함수 이름
from 패키지 이름 import 모듈 이름
from 패키지 이름.모듈 이름 import 함수 이름
- 모듈이 모이면 폴더가 생성되고 패키지라고 부릅니다.
일반 폴더와 구분하기위해 패키지는 폴더안에 '__init__.py' 파일을 생성하며
version 1.0 정도의 문자열을 내용으로 표시합니다.
- 하위 패키지의 생성은 계속적인 하위 폴더를 생성합니다.
1. 모듈의 선언
[실행 화면]
10
10
▷ /src/Lib.py
-------------------------------------------------------------------------------------
# -*- coding: utf-8 -*-
def absolute(su1):
if su1 < 0:
su1 = su1 * -1
return su1
'''
print('__name__: ' + __name__) # Lib
print(absolute(10))
print(absolute(-10))
'''
if __name__ == '__main__':
print('__name__: ' + __name__) # __main__
print(absolute(10))
print(absolute(-10))
-------------------------------------------------------------------------------------
2. 패키지안의 모듈을 선언
[실행 화면]
▷ /src/tool/Math.py
-------------------------------------------------------------------------------------
# -*- coding: utf-8 -*-
def roundsu(su1):
su1 = su1 + 0.5
return str(int(su1))
def tot(*args):
tot = 0
for su in args:
tot = tot + su
return tot
print(roundsu(10.5))
print(tot(100, 200))
print(tot(100, 200, 300))
-------------------------------------------------------------------------------------
3. 패키지를 동반한 모듈의 선언
[실행 화면]
▷ /src/tool/Tool.py
-------------------------------------------------------------------------------------
# -*- coding: utf-8 -*-
def maxsu(su1, su2):
if su1 > su2:
return su1
else:
return su2
def minsu(su1, su2):
if su1 < su2:
return su1
else:
return su2
def swap(su1, su2):
temp =su1
su1 = su2
su2 = temp
return su1, su2
print(maxsu(10, 20))
print(minsu(10, 20))
su1 = 100
su2 = 200
print("su1: " + str(su1) + ", " + "su2: " + str(su2))
su1, su2 = swap(su1, su2)
print("su1: " + str(su1) + ", " + "su2: " + str(su2))
-------------------------------------------------------------------------------------
- import 선언시 실행시에 import되는 모듈이 자동으로 실행됩니다.
[실행 화면]
▷ /src/ModuleTest.py
-------------------------------------------------------------------------------------
# -*- coding: utf-8 -*-
import time
import Lib
import tool.Tool
import tool.Tool as toolbox # 별명 지정
from tool.Tool import swap # 가져올 함수 선언, 여러개 선언은 ','로 구분
from tool.Math import * # 모든 함수 import
if __name__ == '__main__':
# print('__name__: ' + __name__)
print('같은 폴더안의 모듈 import')
print(Lib.absolute(-5000)) # import Lib
time.sleep(1) # 1 초
print('MAX: ' + str(tool.Tool.maxsu(1000, 2000))) # import tool.Tool
time.sleep(1) # 1 초
print('MIX: ' + str(toolbox.minsu(1000, 2000))) # import tool.Tool as toolbox
time.sleep(1) # 1 초
su1 = 100
su2 = 200
print("su1: " + str(su1) + ", " + "su2: " + str(su2))
su1, su2 = swap(su1, su2)
print("su1: " + str(su1) + ", " + "su2: " + str(su2))
time.sleep(1)
print()
print('roundsu(10.5): ' + str(roundsu(10.5))) # from tool.Math import *
print('tot(100, 200): ' + str(tot(100, 200)))
-------------------------------------------------------------------------------------
'빅데이터 프로그래밍 > Python' 카테고리의 다른 글
[Python] 11. 상속(ingeritance), 부모클래스의 생성자호출, 생성자/메소드 오버로딩, 다중 상속 (0) | 2017.08.02 |
---|---|
[Python] 10. Class 선언, 클래스 멤버, 메소드, 인스턴스 멤버, 메소드의 실습, 생성자, 소멸자, 모듈 분리 (0) | 2017.08.02 |
[Python] 08. 함수 다루기, 함수의 인자, 지역 변수와 전역 변수, 리턴값, 디버깅 (0) | 2017.08.02 |
[Python] 07. 제어문 - 반복문(while, for문), for 문 실습 (0) | 2017.08.02 |
[Python] 06. 제어문 - 분기문(if) - 다양한 if문, if문 실습, Template (2) | 2017.08.02 |
댓글