import 包名,会遇到的坑

本文介绍了如何使用__init__.py文件来正确导入Python包中的模块,并通过实例演示了一级和二级目录下模块的导入过程。

如果直接 import 包名 ,我们是无法通过 包名,模块名,函数名()   来调用包里面的函数的。

例如下面:

 

解决方案: 利用__init__.py文件进行初始化,导入这个包下的所有模块

 

import test_package
导入包会自动执行包中的__init__.py文件。在这个文件中我们可以做一些初始化工作。一般情况下我们既然会导入这个包,证明我们需要用到这个包下的多个甚至所有模块,所以我们所说的一些初始化工作就是在__init__.py文件中导入这个包下的所有模块:
from . import 模块1
from . import 模块2

......
而当我们调用的时候需要这样:
包名.模块名.函数名()   # test_package.test_module.test()

 

一级目录:

'''test.py'''

import mglearn

mglearn.datasets.make_wave(n_samples=40)

运行结果:

 

二级目录:

 

 

'''__init__.py'''

from . import plots
'''plots.py'''

from .plot_linear_regression import plot_linear_regression_wave
'''plot_linear_regression.py'''

from .datasets import make_wave

def plot_linear_regression_wave():
    pass
'''datasets.py'''

def make_wave(n_samples=100):
    print('hello 111111')

分析:

一开始是不能直接执行  mglearn.datasets.make_wave(n_samples=40)  这行调用的。但是,我们在__init__.py文件中导入这个包下的所有模块。

 

注意:

这时的模块导入像遍历一样,一层一层的下去,全都导入了进来

(1)__init__.py  导入了  plots.py

(2)plots.py  导入了  plot_linear_regression.py

(3)plot_linear_regression.py  导入了  datasets.py

(4)直接通过mglearn.datasets.make_wave(n_samples=40) ,即包名.模块名.函数名() ,调用了 datasets.py里面的make_wave()函数

 

 

### UniApp 小程序开发常见问题及解决方法 #### 1. 编译报错:`Module not found` 当项目中引入某些模块时,可能会遇到 `Module not found` 的错误提示。这通常是由于路径配置不正确或依赖未安装所致。 ```bash npm install --save 模块称 ``` 确保所有依赖项都已正确安装,并检查 `import` 或 `require` 路径是否准确无误[^1]。 #### 2. 页面跳转失败 页面间导航出现问题可能是路由设置不当引起的。应确认 `pages.json` 文件中的页面路径与实际文件位置相匹配。对于动态参数传递,则需注意 URL 参数格式化处理: ```javascript // 正确的方式 this.$router.push({ path: '/path/to/page', query: { id: 'someId' } }); ``` 此外,在目标页面接收参数时要使用 `$route.query.id` 来获取传入的数据[^2]。 #### 3. 组件样式冲突 如果发现自定义组件内的 CSS 样式影响到了其他部分,可能是因为全局样式的优先级较高或是 scoped 属性缺失造成的。建议给每个独立组件加上 `<style scoped>` 标签以限定作用范围;也可以尝试调整 `.vue` 文件里的 style 部分加载顺序来解决问题[^3]。 #### 4. 数据请求超时 网络接口调用时常会面临连接不稳定的情况,这时应该考虑增加重试机制并合理设定超时时长。利用 uni.request API 提供的相关选项优化 HTTP 请求逻辑: ```javascript uni.request({ url: 'https://example.com/api/data', //仅为示例网址,请替换为真实地址 method: 'GET', timeout: 8000, // 设置合理的超时时间(ms) success(res) { console.log('success:', res); }, fail(err) { console.error('fail:', err); // 可在此处加入重新发起请求或其他异常处理措施 } }); ``` #### 5. 性能瓶颈 随着应用复杂度上升,性能损耗成为不可避免的话题。针对此现象可以从以下几个方面入手改善用户体验: - 减少不必要的 DOM 操作次数; - 对图片资源做懒加载处理; - 使用缓存技术减少重复计算量; - 合理规划业务流程降低服务器压力等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值