파이썬 노트(5)

4792 단어
모듈
 
하나.간단한 소개
모듈은 기본적으로 당신이 정의한 함수와 변수를 모두 포함하는 파일입니다.다른 프로그램에서 모듈을 다시 사용하기 위해서는 모듈의 파일 이름이 .py로 확장되어야 합니다.
 
예를 들면 다음과 같습니다.
 
#!/usr/bin/python # Filename: using_sys.py import sys print 'The command line arguments are:' for i in sys.argv: print i print '/n/nThe PYTHONPATH is', sys.path, '/n'
출력:
 
$ python using_sys.py we are arguments The command line arguments are: using_sys.py we are arguments The PYTHONPATH is ['/home/swaroop/byte/code', '/usr/lib/python23.zip', '/usr/lib/python2.3', '/usr/lib/python2.3/plat-linux2', '/usr/lib/python2.3/lib-tk', '/usr/lib/python2.3/lib-dynload', '/usr/lib/python2.3/site-packages', '/usr/lib/python2.3/site-packages/gtk-2.0']
 
 
둘.바이트는 컴파일했다.pyc 파일
하나의 모듈을 입력하는 것은 상대적으로 시간이 많이 걸리는 일이기 때문에 Python은 입력 모듈을 더욱 빨리 하기 위해 몇 가지 기술을 했다.한 가지 방법은 바이트 컴파일된 파일을 만드는 것입니다. 이 파일들은 .pyc 확장자로 되어 있습니다.바이트가 컴파일된 파일은 Python 변환기의 중간 상태와 관계가 있습니다.다음에 다른 프로그램에서 이 모듈을 입력할 때 .pyc 파일은 매우 유용하다. 일부 입력 모듈에 필요한 처리가 이미 끝났기 때문이다.또한 이 바이트로 컴파일된 파일도 플랫폼과 무관하다.
 
셋.from..import 문
프로그램에 변수를 직접 입력하려면 argv 문장을 사용할 수 있습니다.모든 from sys import argv 모듈에 사용할 이름을 입력하려면 sys 문장을 사용할 수 있습니다.이것은 모든 모듈에 적용된다.일반적으로 말하면 from sys import *를 사용하지 않고 from..import 문장을 사용해야 한다. 왜냐하면 이것은 당신의 프로그램을 더욱 쉽게 읽을 수 있고 명칭의 충돌도 피할 수 있기 때문이다.
 
넷.모듈의name__
모듈마다 하나의 명칭이 있는데 모듈에서 문장을 통해 모듈의 명칭을 찾을 수 있다.하나의 모듈이 처음 입력되었을 때, 이 모듈의 메인 블록은 실행될 것이다.만일 우리가 프로그램 자체가 사용될 때만 주 블록을 실행하고 다른 모듈에 입력될 때 주 블록을 실행하지 않으려면 모듈의 를 통해name__속성이 완성되었습니다.
#!/usr/bin/python # Filename: using_name.py if __name__ == '__main__': print 'This program is being run by itself' else: print 'I am being imported from another module'
 
출력:
$ python using_name.py This program is being run by itself $ python >>> import using_name I am being imported from another module >>>
모든 Python 모듈은 import이 있는데 __name__라면 이 모듈이 사용자에게 단독으로 실행되고 우리는 해당하는 적절한 조작을 할 수 있다는 것을 의미한다.
 
오.자체 제작 모듈
예를 들면 다음과 같습니다.
module 쓰기
#!/usr/bin/python # Filename: mymodule.py def sayhi(): print 'Hi, this is mymodule speaking.' version = '0.1' # End of mymodule.py
사용하다
 
#!/usr/bin/python # Filename: mymodule_demo.py import mymodule mymodule.sayhi() print 'Version', mymodule.version
 
출력:
 
$ python mymodule_demo.py Hi, this is mymodule speaking. Version 0.1
 
여기서도 프롬...import에서 호출
예를 들면 다음과 같습니다.
#!/usr/bin/python # Filename: mymodule_demo2.py from mymodule import sayhi, version # Alternative: # from mymodule import * sayhi() print 'Version', version
출력이 같습니다.
 
여섯.dir () 함수
 
모듈이 정의한 표지부를 표시하기 위해 내장된 '__main__' 함수를 사용할 수 있습니다.표지부호에는 함수, 클래스와 변수가 있다.
예를 들면 다음과 같습니다.
$ python >>> import sys >>> dir(sys) # get list of attributes for sys module ['__displayhook__', '__doc__', '__excepthook__', '__name__', '__stderr__', '__stdin__', '__stdout__', '_getframe', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'exc_clear', 'exc_info', 'exc_type', 'excepthook', 'exec_prefix', 'executable', 'exit', 'getcheckinterval', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding', 'getrecursionlimit', 'getrefcount', 'hexversion', 'maxint', 'maxunicode', 'meta_path','modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'setcheckinterval', 'setdlopenflags', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'version', 'version_info', 'warnoptions'] >>> dir() # get list of attributes for current module ['__builtins__', '__doc__', '__name__', 'sys'] >>>>>> a = 5 # create a new variable 'a' >>> dir() ['__builtins__', '__doc__', '__name__', 'a', 'sys'] >>>>>> del a # delete/remove a name >>>>>> dir() ['__builtins__', '__doc__', '__name__', 'sys'] >>>

좋은 웹페이지 즐겨찾기