Python05包、模块、函数与变量作用域

本文深入解析Python项目的组织结构,从包、模块、类到函数和变量的层级关系,阐述了如何通过命名空间进行调用,介绍了init.py的作用及模块加载机制,同时提供了VSCode配置技巧和Python编程规范建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python项目的组织结构

包→模块→类→函数和变量
一个文件夹代表一个包
一个文件代表一个模块
一个class代表一个类
命名空间:包名.子包名.模块名.类
将一个文件夹变成一个包,这个文件夹必须有一个,init.py 文件(模块)
init.py 文件可以为空,只做标注包
没有 包名.init 这个命名空间

调用其他模块的内容

同包内部

import 模块名
调用时 print(模块名.变量名)

不同包内部

import 包名.模块名
调用时 print(包名.模块名
调用后会生成一个__pycache__文件夹里面包含一个模块名.cpython-36.pyc文件
模块名.cpython-36.pyc 是一个自解码文件
此方法import 只能到达模块
另外可以写成
import 包名.模块名 as m
调用时 print(m.变量名)

调用变量另一种方法:from

from 包名.模块名 import 变量名
调用时 print(变量名)
from 包名 import 模块名
调用时 print(模块名.变量名)
from 包名.模块名 import *
调用时 print(变量名)
调用多变量,但不推荐
from 包名.模块名 import *
调用时 print(变量名)
在被调用模块中添加一行代码__all__ = [变量名1,变量名2,变量名3]
其中,列表变量为可以让其他人调用的变量

vscode快捷键:

在常规设置内找到files.exclude可以将不需要的文件隐藏

一次导入多个模块或变量

from 包名.模块名 import 变量名1,变量名2,变量名3
python建议,一行代码不得超出80字,编程习惯
一行代码写不开,可以在代码后加\然后换行,不推荐
可以使用括号换行

示例:
from 包名.模块名 import (变量名1,变量名2,
  变量名3)
在__init__.py 文件中命令

import 包名(或者包下面的模块等)
就会直接执行在__init__.py 文件中命令

init.py 文件中命令的应用场景

在__init__.py 文件中定义

all = [模块名1,模块名2,模块名3]

调用这个包时,只能调用定义后的模块中的变量

可以将包内模块所需要的通用 调用包import进来
避免多次重复写,也可以跨包调用

import 包名
#调用时 
    print(包名.模块名.变量名)

包和模块是不会被重复导入的
避免循环导入 1调用2 2就不能再调用1 否则报错 不推荐,编程习惯

import 导入模块后就会执行模块内的代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值