Python全栈(十)Django框架之4.过滤器、结构优化和静态资源文件
pycharm中设置:file——setting——project:xxx——project structure——选中.py模块所在路径然后点击“source”——ok
模块化
- 将一个完整的程序分解为一个一个小的模块
- 通过将模块组合,来搭建出一个完整的程序
- 不采用模块化,统一将所有的代码编写到一个文件中
- 采用模块化,将程序分别编写到多个文件中
- 模块化优点
- 方便开发
- 方便维护
- 模块可以复用
模块
- 在python中,一个py文件就是一个模块
- 模块名要符合标识符的规范
在一个模块中引入外部模块
import 模块名 #(模块名,就是python文件的名字,注意不要py)
import 模块名 as 模块别名
- 1
- 2
- import 可以在程序的任意位置调用,一般情况下,import语句都会统一写在程序的开头
- 在每一个模块内部都有一个 __name__属性,通过这个属性可以获取到模块的名字
- __name__ 属性值为 __main__ 的模块是主模块,一个程序中只会有一个主模块
- 主模块就是直接通过python执行的模块
示例:
test_module.py
# print("我是test_module")
print(__name__)
- 1
- 2
main.py
import test_module as test
# print(test.__name__)
print(__name__) # __main__
访问模块中的变量
模块名.变量名
- 1
m.py
a = 10
b = 20
def test():
print("test")
def test2():
print("test2")
class Person:
def __init__(self):
self.name = "孙悟空"
main.py
import m
print(m.a, m.b)
m.test()
m.test2()
p = m.Person()
print(p.name)
引入模块中的部分内容
语法:
from 模块名 import 变量,变量,...
- 1
示例:
m.py
a = 10
b = 20
def test():
print("test")
def test2():
print("test2")
class Person:
def __init__(self):
self.name = "孙悟空"
main.py
from m import Person
# from m import test,Person
# from m import * #引入模块中所有内容,一般不会使用
p1 = Person()
print(p1)
#test()
#test2()
引入变量使用别名
语法:
from 模块名 import 变量 as 别名
- 1
模块私有
- 添加了 _ 的变量,只能在模块内部访问
模块标准编写方式
a = 10
b = 20
_c = 30
def test():
print("test")
def test2():
print("test2")
class Person:
def __init__(self):
self.name = "孙悟空"
if __name__ == "__main__":
test()
test2()
p = Person()
print(p.name)
包
- 包也是一个模块
- 当模块中代码过多时,或者一个模块需要被分解为多个模块时,就需要使用包
- 包是一个目录
- 包中必须要有一个 __init__.py 这个文件
- __pycache__ 是模块的缓存文件
- 为了提高程序运行的性能,python会在编译过一次以后,将代码保存到一个缓存文件中
hello/__init__.py
def test():
print("test")
- 1
- 2
hello/a.py
c = 30
- 1
hello/b.py
d = 40
- 1
main.py
import hello
from hello import a, b
print(a.c)
print(b.d)
hello.test()
本文首发于python黑洞网,博客园同步更新