[Python] 09. 모듈과 패키지의 사용, import의 사용, Template

2017. 8. 2. 16:28·빅데이터 프로그래밍/Python
728x90
반응형

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. 패키지안의 모듈을 선언

[실행 화면]

11
300
600
▷ /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. 패키지를 동반한 모듈의 선언

[실행 화면]

20
10
su1: 100, su2: 200
su1: 200, su2: 100
 
▷ /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))


-------------------------------------------------------------------------------------
 

 

4. import를 이용한 모듈의 사용
- import 선언시 실행시에 import되는 모듈이 자동으로 실행됩니다.

[실행 화면]
같은 폴더안의 모듈 import
5000
MAX: 2000
MIX: 1000
su1: 100, su2: 200
su1: 200, su2: 100
 
roundsu(10.5): 11
tot(100, 200): 300
▷ /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)))    
    

-------------------------------------------------------------------------------------
 

 

728x90
반응형

'빅데이터 프로그래밍 > 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
'빅데이터 프로그래밍/Python' 카테고리의 다른 글
  • [Python] 11. 상속(ingeritance), 부모클래스의 생성자호출, 생성자/메소드 오버로딩, 다중 상속
  • [Python] 10. Class 선언, 클래스 멤버, 메소드, 인스턴스 멤버, 메소드의 실습, 생성자, 소멸자, 모듈 분리
  • [Python] 08. 함수 다루기, 함수의 인자, 지역 변수와 전역 변수, 리턴값, 디버깅
  • [Python] 07. 제어문 - 반복문(while, for문), for 문 실습
밍글링글링
밍글링글링
mingling - 밍글링, 밍글밍글링. 코드와 어우러지다. IT/ 프로그래밍/소스
    반응형
    250x250
  • 밍글링글링
    mingling
    밍글링글링
  • 전체
    오늘
    어제
    • 밍글링글링 (407) N
      • Flutter (2)
      • 일상생활 (8)
        • 리뷰 (1)
        • 생활정보 (4)
        • 맛집 (0)
        • 여행 (0)
        • 모든정보 (3)
      • JAVA (126)
        • 개념 (6)
        • 예제 (115)
        • Exception (2)
      • C (1)
        • C (1)
        • C++ (0)
        • C# (0)
      • JS (29)
        • JavaScript (18)
        • JQuery (5)
        • AJax (0)
        • NODE.JS (6)
        • Angular.JS 2.0 (0)
      • WEB (87)
        • HTML (6)
        • CSS (61)
        • JSP (20)
        • JSTL (0)
      • FrameWork (8)
        • Spring (8)
        • BootStrap (0)
        • MyBATIS (0)
        • JUnit (0)
      • 외부 라이브러리 (5)
      • 공유 소스 관리 (5)
        • Git (5)
        • SVN (0)
      • 빅데이터 프로그래밍 (37)
        • Python (37)
        • R Programming (0)
      • DB (7)
        • ORACLE (0)
        • MySql (6)
      • Development Tools (7)
        • StarUML (0)
        • eXERD (0)
        • Eclipse (4)
      • SKILL (6)
        • Migration (0)
        • Security (6)
      • MicroSoft (0)
        • Excel (0)
        • Word (0)
      • Android (0)
      • Server (21)
        • Ubuntu (5)
        • Linux (15)
      • IOS (0)
      • XML (0)
      • 미디어 (0)
      • 공지사항 (3)
      • NETWORK (1)
      • 게임 (4)
        • 피파 (1)
        • 리니지M (0)
        • 배틀그라운드 (1)
        • 듀랑고 (2)
      • 세상 이슈 (6)
      • 일렉트론 (0)
      • 대회 소식 (4)
      • 업무 (2)
      • Express, Vue (6)
      • docker (11)
      • svelte (3)
      • 블록체인 (1)
      • IT (10) N
      • Rust (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Node
    nginx ssl 설정
    ubuntu
    자바 생성자
    AI 코딩 에이전트
    오류
    css float
    Extension Bisect
    spring java
    리눅스 설치
    프런트엔드
    lang rust
    VS Code 팁
    vue 설치
    docker
    java casting
    css perspective
    Java Array
    티스토리 자동화
    css transition
    rust linux
    React Compiler
    jsp parameter
    gitlab 설치
    자바 객체 지향
    nginx ssl 적용
    API 설계
    css list
    자바 클래스
    svelte
    자바 배열
    클론코딩
    SSL 인증서
    css table
    mysql db
    에디터 팁
    Rust lang
    css tb
    러스트
    ssl 인증서 발급
    자바 for문
    vscode
    nginx
    브라우저 자동화
    css block
    proxy pass
    vue cli
    jsp include
    자바 exception
    servlet class
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
밍글링글링
[Python] 09. 모듈과 패키지의 사용, import의 사용, Template
상단으로

티스토리툴바