파이썬 모듈 #2




모듈을 독립적 실행


앞에서 만든 모듈을 독립적으로 실행 하기 위해 이전 강의에서 만든 tool1.py 프로그램에 다음과 같이 1줄 추가 해 보겠다.


#!/usr/bin/python

# -*- coding: utf-8 -*-

def helloKorea():
    print("안녕하세요.")

def helloEnglish():
    print("Hello")

print("모듈 실행")#추가 부분


tool1.py를 실행 시키면 다음과 같이 출력 된다.


모듈 실행


하지만 tool1.py 모듈을 가져다 쓴 main을 실행시 다음과 같은 문제가 발생 된다.


모듈 실행 <<----------원치 않은 메시지 출력

안녕하세요.

Hello


tool1 모듈을 이용하는 프로그램은 모두 모듈 실행이라는 출력문이 발생 할 것이다.



__name__


위와 같이 내가 만든 모듈이 실행 될때만 모듈의 실행문이 실행 되고 싶을 때 어떻게 해야 할 지 고민을 될 것이다.

이것을 해결 하기 위해 __name__에 대해 알아보자

실행 되는 파일과 __name__이 호출 되는 파일이 일치하면 "__main__" 이라고 출력이 된다.

그래서 다음과 같이 tool1.py을 수정한다.


#!/usr/bin/python

# -*- coding: utf-8 -*-

def helloKorea():
    print("안녕하세요.")

def helloEnglish():
    print("Hello")

if __name__ == "__main__": #<<-- 내가 만든 모듈이 실행 될때만 모듈의 실행문이 실행 되고 싶을때 넣는다.
    print("모듈 실행")


tool1.py를 실행


모듈 실행


main.py를 실행


안녕하세요.

Hello


이전 모듈 설명 가기 ====> click

반응형

'프로그램 > Python' 카테고리의 다른 글

[Python] 예외처리 try, finally, except pass  (0) 2016.11.28
[Python] 예외 처리, try, except, else  (0) 2016.11.26
[Python] 모듈 #1  (0) 2016.11.12
[Python]클래스(3)  (0) 2016.11.02
[Python]클래스 (2)  (0) 2016.09.16

파이썬 모듈


모듈은 특정한 기능 함수 클래스를 모아 놓은 파일이다.

여러분이 파이썬을 개발 할 때 import 모듈명을 사용하여 만들어진 모듈을 사용했을 것이다.

이제 여러분이 이런 모듈을 직접 만들어 볼 차례이다.



모듈 작성과 사용


우선 간단한 예제 모듈을 만들어 보도록 하자


#!/usr/bin/python

# -*- coding: utf-8 -*-

def helloKorea():
    print("안녕하세요.")

def helloEnglish():
    print("Hello")


위와 같이 작성 후 tool1.py 이라고 저장 한다.

같은 폴더 위치에 main.py  이라고 파일을 하나 만들고 해당 파일에 위의 모듈을 사용하는 예제를 작성 한다.


아래와 같이 tool.py과 main은 같은 위치에 있어야 한다.

C:\example>dir

...

2016-11-13 오후 01:00   55    tool.py

2016-11-13 오후 01:02   45    main.py

...


아래는 main.py 예제이다.

모듈을 가져다 쓸때는 .py를 빼고 import 파일명

모듈의 함수를 가져다 쓸 때는 파일명.함수명 


#!/usr/bin/python

# -*- coding: utf-8 -*-


import tool1


tool1.helloKorea()

tool1.helloEnglish()


실행을 시켜 보면 다음과 같은 결과 값이 출력 된다.


안녕하세요.

Hello


다음 모듈 설명 가기 ====> click

반응형

'프로그램 > Python' 카테고리의 다른 글

[Python] 예외 처리, try, except, else  (0) 2016.11.26
[Python] 모듈 #2  (0) 2016.11.13
[Python]클래스(3)  (0) 2016.11.02
[Python]클래스 (2)  (0) 2016.09.16
[Python]클래스 (1)  (0) 2016.09.16

클래스와 인스턴스


앞에서 클래스사용 법에 대해 간략하게 설명 드렸는데 개념이 없이 바로 예제로 설명해 어려움이 있을 것 같아

개념 설명을 추가 하도록 하겠습니다.


다들 어린 시절 학교 앞에서 뽑기를 해본 적이 있을 것이다. 

뽑기를 할때 국자에 소다와 설탕을 넣고 끓인 후 ☆ ♡ 등 모양의 틀로 찍고 그 모양대로 잘라먹은 기억을 다들 가지고 있을 것이다.


여기서 틀은 클래스라 생각 하자 틀을 찍어서 계속 뽑기를 여러개 만들 수 있는데 여기서 뽑기는 인스턴스라고 생각해보자

한개의 틀만 있으면 똑같은 뽑기를 계속 만들 수 있다. 


아래 코드를 보자


 #아래는 틀과 같은 역활을 하는 클래스 선언이다.

 class Human :
         name = ""


 h1 = Human() #Human 이라는 클래스(틀)로 h1 인스턴스(뽑기)를 만든다.

 h2 = Human() #Human 이라는 클래스(틀)로 h2 인스턴스(뽑기)를 만든다.



클래스 변수와 함수


클래스 변수와 함수 사용법에 대해 알아 보겠다.


아래 Human 클래스에 이름 변수를 확인 할 수 있다.

사용 방법은 Class 밑에 들여쓰기 후 변수를 정의 하면 된다.


인스턴스 생성 후에는 인스턴스명.변수명을 사용 하면 된다. 


 class Human :

         name = ""


 h1 = Human() 

 h1.name = "철수"


함수 역시 클래스 밑에 들여쓰기 후 함수를 정의하면 된다.

인스턴스 생성 후에는 인스턴스명.함수명을 사용 하면 된다. 


 class Human :

         name = ""

         def introduce(self) :

             print "내 이름은 %s 입니다."%self.name


 h1 = Human() 

 h1.name = "철수"

 h1.introduce()




생성자 함수(__init__) 선언


앞에서 인스턴스 호출 후 다음에 인스턴스의 이름을 넣었다.


 h1 = Human() 

 h1.name = "철수"


매번 인스턴스를 생성하고 이름을 넣어주는 일이 번거로울 것이다.

그래서 인스턴스를 생성과 동시에 인스턴스를 초기화 시켜주는것이 생성자 함수(__init__) 이다.


 class Human :

         name = ""

         def __init__(self,name):

             self.name = name

         def introduce(self) :

             print "내 이름은 %s 입니다."%self.name


 h1 = Human("철수") 

 h1.introduce()



이전 클래스 설명 가기 ====> click

반응형

'프로그램 > Python' 카테고리의 다른 글

[Python] 모듈 #2  (0) 2016.11.13
[Python] 모듈 #1  (0) 2016.11.12
[Python]클래스 (2)  (0) 2016.09.16
[Python]클래스 (1)  (0) 2016.09.16
[Python]파일(File) 사용법  (0) 2016.09.16

텐서플로란?


구글의 딥 러닝 시스템


딥러닝은 사람의 학습 능력을 모방 하기 위한 알고리즘 과 방법론 연구 분야입니다.

신경망 알고리즘은 머신 러닝의 한 분야 이며 딥 러닝은 뇌의 신경세포의 구조에서 착안하여 고안된 알고리즘을 사용합니다.




퍼셉트론 알고리즘


신경세포의 특징을 바탕으로 개발 된 것이 퍼셉트론 알고리즘이며 이것은 딥 러닝, 머신 러닝의 기초가 되었습니다.

퍼셉트론 알고리즘의 동작 원리는 정보 A,B 두 개 일 때 가중치 C,D를 곱한 후 더합니다.


A * C + B * D



  • 심층 신경망



  • 입력 계층 : 신경망에서 데이터를 입력 받습니다.

  • 출력 계층 : 결과값을 만들어 냅니다.

  • 은닉 계층 : 입력 계층과 출력 계층 사이에 하나 이상의 계층이 끼어 있는 경우 이 부분을 지칭한다.


반응형

+ Recent posts