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黑洞网,博客园同步更新

 
原文地址:https://www.cnblogs.com/pythonzhilian/p/13630276.html