Python module all in one
Python module all in one
Python Modules
https://docs.python.org/3/tutorial/modules.html
Fibonacc
# Fibonacci numbers module
def fib(n): # write Fibonacci series up to n
a, b = 0, 1
while a < n:
print(a, end=' ')
a, b = b, a+b
print()
def fib2(n): # return Fibonacci series up to n
result = []
a, b = 0, 1
while a < n:
result.append(a)
a, b = b, a+b
return result
# 导入模块
import fibo
# 使用
fibo.fib(1000)
fibo.fib2(100)
print(fibo.__name__)
# 'fibo'
# 导入模块
import fibo
# 重命名
fib = fibo.fib
# 使用
fib(1000)
fib2(100)
print(fibo.__name__)
# 'fibo'
# import语句有一个变体,可以将名称从模块直接导入到导入模块的符号表中。
from fibo import fib, fib2
fib(500)
# 不存在 fibo, 没有导入
print(fibo.__name__)
# None
# 这将导入除以下划线(_)开头的名称以外的所有名称。 👎⚠️
from fibo import *
fib(500)
# 如果模块名称后跟as,则名称后跟as直接绑定到导入的模块。
import fibo as fib
# Alias
fib.fib(500)
print(fibo.__name__)
# None
from fibo import fib as fibonacci
fibonacci(500)
execute module
# python3 fibo.py <arguments>
$ python3 fibo.py
Module => Script ??? "main"
from fibo import fib as fibonacci
fibonacci(500)
# 您可以将文件用作脚本以及可导入模块
if __name__ == "__main__":
import sys
fib(int(sys.argv[1]))
# 因为解析命令行的代码仅在模块作为“主”文件执行时运行:
$ python fibo.py 50
# 如果导入模块,则代码不会运行
# import fibo
sys.path
https://docs.python.org/3/library/sys.html#sys.path
Python 3 模块导入方式
-
import Module
-
import Module as Alias_Module
-
from Module import Function
# coding: utf8
# import Module
# 导入整个模块
import camelcase
模块名.函数名
c = camelcase.CamelCase()
txt = "hello world"
print(c.hump(txt))
# coding: utf8
# import Module as Alias_Module
# 导入整个模块, 并且使用 Alias 模块别名
import camelcase as cc
c = cc.CamelCase()
txt = "hello world"
print(c.hump(txt))
# coding: utf8
# from Module import Function
# 导入部分模块
from camelcase import CamelCase
函数名
c = CamelCase()
txt = "hello world"
print(c.hump(txt))
import group modules
python
# import group modules
from spider import url_manager, html_downloader, html_parser, html_outputer
# 导入部分模块
from spider import url_manager
from spider import html_downloader
from spider import html_parser
from spider import html_outputer
create a module
# greeting_module.py
def greeting(name):
print("Hello, " + name)
use a module
Note: When using a
function
from a module, use the syntax:module_name.function_name
.
import greeting_module
greeting_module.greeting("xgqfrms")
# Hello, xgqfrms
import Module as Alias
module alias
human.py
person = {
"name": "xgqfrms",
"age": 23,
"country": "China"
}
import human as man
age = man.person["age"]
print(age)
# 23
import Module as Alias_Module
# coding: utf8
# 导入整个模块
# import camelcase
# 模块名.函数名
# c = camelcase.CamelCase()
# txt = "hello world"
# print(c.hump(txt))
# 导入部分模块
# from camelcase import CamelCase
# 函数名
# c = CamelCase()
# txt = "hello world"
# print(c.hump(txt))
# import Module as Alias_Module
# 导入整个模块, 并且使用 Alias 模块别名
import camelcase as cc
c = cc.CamelCase()
txt = "hello world"
print(c.hump(txt))
"""bug
# ModuleNotFoundError: No module named 'Camelcase'
# AttributeError: module 'camelcase' has no attribute 'CamelCase'
# This method capitalizes the first letter of each word.
"""
Built-in Modules
import platform
x = platform.system()
print(x)
list function names in a module
list all the function names (or variable names) in a module
Note: The dir() function can be used on all modules, also the ones you create yourself.
#!/usr/bin/env python3
# coding: utf8
__author__ = 'xgqfrms'
__editor__ = 'vscode'
__version__ = '1.0.1'
__copyright__ = """
Copyright (c) 2012-2050, xgqfrms; mailto:xgqfrms@xgqfrms.xyz
"""
"""
/**
*
* @author xgqfrms
* @license MIT
* @copyright xgqfrms
* @created 2020-01-0
*
* @description
* @augments
* @example
* @link
*
*/
"""
import platform
dir = dir(platform)
# List all the defined names belonging to the `platform` module:
print(dir)
# ['DEV_NULL', '_UNIXCONFDIR', '_WIN32_CLIENT_RELEASES', '_WIN32_SERVER_RELEASES', '__builtins__', '__cached__', '__copyright__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '__version__', '_comparable_version', '_component_re', '_default_architecture', '_dist_try_harder', '_follow_symlinks', '_ironpython26_sys_version_parser', '_ironpython_sys_version_parser', '_java_getprop', '_libc_search', '_linux_distribution', '_lsb_release_version', '_mac_ver_xml', '_node', '_norm_version', '_parse_release_file', '_platform', '_platform_cache', '_pypy_sys_version_parser', '_release_filename', '_release_version', '_supported_dists', '_sys_version', '_sys_version_cache', '_sys_version_parser', '_syscmd_file', '_syscmd_uname', '_syscmd_ver', '_uname_cache', '_ver_output', '_ver_stages', 'architecture', 'collections', 'dist', 'java_ver', 'libc_ver', 'linux_distribution', 'mac_ver', 'machine', 'node', 'os', 'platform', 'popen', 'processor', 'python_branch', 'python_build', 'python_compiler', 'python_implementation', 'python_revision', 'python_version', 'python_version_tuple', 're', 'release', 'subprocess', 'sys', 'system', 'system_alias', 'uname', 'uname_result', 'version', 'warnings', 'win32_ver']
from Module import Function
You can choose to
import only parts
from a module, by using thefrom
keyword.
test_module.py
# test_module has one function and one dictionary:
def greeting(name):
print("Hello, " + name)
person = {
"name": "xgqfrms",
"age": 23,
"country": "China"
}
from test_module import person
print (person["age"])
Note: When importing using the from
keyword, do not use the module name
when referring to elements in the module.
camelcase bug
https://www.w3schools.com/python/showpython.asp?filename=demo_camelcase
import camelcase
c = camelcase.CamelCase()
txt = "hello world"
print(c.hump(txt))
# Hello World
refs
https://www.w3schools.com/python/python_modules.asp
https://www.runoob.com/python3/python3-module.html
©xgqfrms 2012-2020
www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!
本文首发于博客园,作者:xgqfrms,原文链接:https://www.cnblogs.com/xgqfrms/p/13431763.html
未经授权禁止转载,违者必究!