关于包导入,你绝对不知道的小秘密

Web Mercator 公开的小秘密 网上已经有好多作者都不吝笔墨,写了好多有关 Web Mercator这个坐标系的前世今生。多搜罗多摄入,我们会得到很多有用的信息。今天讨论到 3758,3857,102100,900913…… 这些ID又一石激起千层浪,看来整理总结下还是有点必要。Web Mercator 如何定义?我们知道,地理数据的坐标系一般有两大类,一是地理坐标系(GCS),是经纬度单位的椭球坐标系;二是投影坐标系(PCS), 阅读详情

点击上方“AI派”,选择“加为星标”

第一时间关注Python技术干货!

AI派在读学生小姐姐Beyonce

Java实战项目练习群

长按识别下方二维码,按需求添加

扫码添加Beyonce小姐姐

扫码关注

进Java学习大礼包

作者:写代码的明哥

来源:Python编程时光

1. 使用 __all__  控制可被导入的变量

使用 from module import *  默认情况下会导入 module 里的所有变量,若你只想从模块中导入其中几个变量,可以在 module 中使用 __all__ 来控制想要被其他模块导入的变量。

# profile.py
name='小明'
age=18

__all__=['name']

打开 python console 验证一下

>>> from profile import *
>>> print(name)
小明
>>> print(age)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'age' is not defined

__all__ 仅对于使用from module import *  这种情况适用。

它经常在一个包的 __init__.py 中出现。

2. 命名空间包的神奇之处

命名空间包,对于不少人来说,可能是一个陌生的名字。

与我们熟悉的常规包不同的是,它没有 __init__.py 文件。

更为特殊的是,它可以跨空间地将两个不相邻的子包,合并成一个虚拟机的包,我们将其称之为 命名空间包。

例如,一个项目的部分代码布局如下

foo-package/
    spam/
        blah.py

bar-package/
    spam/
        grok.py

在这2个目录里,都有着共同的命名空间spam。在任何一个目录里都没有__init__.py文件。

让我们看看,如果将foo-package和bar-package都加到python模块路径并尝试导入会发生什么?

>>> import sys
>>> sys.path.extend(['foo-package', 'bar-package'])
>>> import spam.blah
>>> import spam.grok
>>>

当一个包为命名空间包时,他就不再和常规包一样具有 __file_ 属性,取而代之的是 __path__

>>> import sys
>>> sys.path.extend(['foo-package', 'bar-package'])
>>> import spam.blah
>>> import spam.grok
>>> spam.__path__
_NamespacePath(['foo-package/spam', 'bar-package/spam'])
>>> spam.__file__
Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute '__file__'

3. 模块重载中的一个坑

由于有 sys.modules 的存在,当你导入一个已导入的模块时,实际上是没有效果的。

为了达到模块的重载,有的人会将已导入的包从 sys.modules 中移除后再导入

就像下面这样子

>>> import foo.bar
successful to be imported
>>>
>>> import foo.bar
>>>
>>> import sys
>>> sys.modules['foo.bar']
<module 'foo.bar' from '/Users/MING/Code/Python/foo/bar.py'>
>>> del sys.modules['foo.bar']
>>>
>>> import foo.bar
successful to be imported

上面的例子里我使用的是import foo.bar ,如果你使用的是  from foo import bar 这种导入形式,会发现重载是同样是无效的。

这应该算是一个小坑,不知道的人,会掉入坑中爬不出来。

>>> import foo.bar
successful to be imported
>>>
>>> import foo.bar
>>>
>>> import sys
>>> del sys.modules['foo.bar']
>>> from foo import bar
>>>

因此,在生产环境中可能需要避免重新加载模块。而在调试模式中,它会提供一定的便利,但你要知道这个重载的弊端,以免掉入坑里。

文末福利

各位猿们,还在为记不住API发愁吗,哈哈哈,最近发现了国外大师整理了一份Python代码速查表和Pycharm快捷键sheet,火爆国外,这里分享给大家。

这个是一份Python代码速查表

下面的宝藏图片是2张(windows && Mac)高清的PyCharm快捷键一览图

怎样获取呢?可以添加我们的AI派团队的Beyonce小姐姐

一定要备注【高清图】哦

????????????????????

➕我们的Beyonce小姐姐微信要记得备注【高清图】哦

来都来了,喜欢的话就请分享、点赞、在看三连再走吧~~~

AI部署系列:你知道模型权重的小秘密吗? 深度学习中,我们一直在训练模型,通过反向传播求导更新模型的权重,最终得到一个泛化能力比较强的模型。同样,如果我们不训练,仅仅随机初始化权重,同样能够得到一个同样大小的模型。虽然两者大小一样,不过两者其中的权重信息分布相差会很大,一个脑子装满了知识、一个脑子都是水,差不多就这个意思。 所谓的AI模型部署阶段,说白了就是将训练好的权重挪到另一个地方去跑。一般来说,权重信息以及权重分布基本不会变(可能会改变精度、也可能会合并一些权重)。 不过执行模型操作(卷积、全连接、反卷积)的算子会变化,可能从Pyto 阅读详情

相关推荐

⭐️白嫖的阿里云认证⭐️ 【真题&参考答案】:大模型Clouder认证:利用大模型提升内容生产能力

【摘要】真题「大模型Clouder认证:利用大模型提升内容生产能力」

davidkorhenn的博客 1936

GRUB的小秘密

我看了一下GRUB的源代码:主要的窍门是这样的:GRUB分两个部分stage1,stage2(stage1.5)stage1就是512的引导区了,它加载放在文件系统中的stage2。而stage2完成GRUB的其它的事情,命令行,配罝,从文件系统中加载Kernel。。。但是stage1只能有512个字节的代码。。是不可能识别文件系统的:(解决的小窍门就是,stage1只装入stag

fohoo的专栏 1211

UniApp X 网络请求避坑指南:从 JS 到 UTS 的 JSON 数据处理全解析

摘要:UniAppX开发中处理JSON数据时,UTS强类型特性要求开发者改变JS习惯。本文对比两种主流方案:1)UTSJSONObject通过keypath访问数据,兼容JS但缺乏类型提示;2)type+泛型方案,通过定义数据类型实现强类型校验和智能提示,推荐用于固定数据结构。文章详细演示了两种方式的具体实现、转换方法及实战案例,并提供了类型定义技巧和注意事项,帮助开发者编写更稳定高效的跨平台应用。

归梦工作室 2791

QML的import目录爬坑记录

为什么80%的码农都做不了架构师?>>> ...

weixin_33754913的博客 2038

AD9361 Fast Lock实战:Python脚本自动生成Profile寄存器配置(附完整代码)

本文详细介绍了利用Python脚本实现AD9361 Fast Lock Profile寄存器自动化配置的实战方案。通过解析频率合成公式、VCO约束及查表机制,脚本能根据目标频率一键生成完整的16进制寄存器序列,大幅提升射频系统开发中多频点切换的效率和准确性,并支持CSV、JSON、C头文件等多种输出格式,便于与FPGA/嵌入式系统集成。

weixin_29194693的博客 475

虚拟零售智能客服架构设计:如何用大模型实现多轮对话与精准推荐?

想象一下,当你在一个电商平台购物时,遇到了一个能像你的专属导购一样,不仅能听懂你模糊的需求(“我想买一件适合夏天去海边玩,又能兼顾日常通勤的裙子”),还能记得你之前提到的尺码偏好和预算,甚至在你犹豫时,主动推荐几款符合你风格且正好有促销活动的商品——这不再是科幻电影中的场景,而是基于大语言模型(LLM)技术的新一代虚拟零售智能客服能够提供的体验。这一层是我们架构设计的重点,会在后续章节详细展开。如基于CRF、RNN的模型,或基于规则的状态更新,通常需要大量标注的对话状态数据,且对新领域、新槽位的适应性差。

Java大师兄的博客 1591

第二届 BJDCTF 2020 Pwn Writeup (出题人版)

最为第一届BJDCTF的参赛选手和本届比赛的二进制出题人+运维,真心祝愿BJDCTF越办越好!(说多了怕被打)

HiTaQini 2621

NXP MCU CAN波特率(位时间)配置详解

1. 概述 本文将会详细讲解如何设置NXP MCU的CAN波特率、位时间、采样点等属性。 波特率即CAN总线传输频率,位时间是波特率的倒数,例如波特率是500K,那么位时间 = 1 / 500000 = 0.000002s = 2000ns。 我们先来看一下S32K144单片机的EB中与CAN总线波特率相关的可配置参数有哪些: ...

weixin_42967006的博客 9692

有哪些圈子里才知道的小秘密

程序员圈子有些事,行外人觉得神秘,行内人懒得往外说。今天不讲技术讲门道,聊几个做开发这几年才知道的"潜规则"。

开源世界 176

《UDS协议从入门到精通》系列——图解0x83:访问时间参数

详细介绍UDS协议0x83服务,目标ECU的时序参数设置有哪些注意点?

车载系统攻城狮 2138

18、未来医疗信息学中的太赫兹天线技术

本文探讨了太赫兹天线技术在医疗信息学中的关键作用,重点分析了分裂环谐振器和纳米结构光导天线(PCA)的设计与性能提升方法,介绍了相干与非相干太赫兹检测技术,并通过等效电路模型和数值模拟深入解析PCA工作机理。文章还展示了太赫兹技术在无创血糖监测、肿瘤检测等医疗诊断中的实验应用,总结了其非侵入性、高分辨率成像和多参数分析等优势,同时指出信号检测难、成本高和技术复杂等挑战。未来趋势包括设备小型化、效率提升及与人工智能融合,拓展至药物研发、皮肤与神经疾病诊断等领域,展现出变革医疗健康的巨大潜力。

milk8的博客 146

关于HTML(你所不知道的小秘密)

术语 w3c组织定义的语言标准(https://www.w3.org/) 用于描述页面结构的语言 (超文本标记语言) 可参考文档:MDN 常用的元素 1. 文本元素: h(h1-h6)1级标题~6级标题 (块级元素)`<h1></h1>` p 段落 (块级元素)`<p></p>` span (无语义,仅用于设置样式,行内元素) `<span></span>` pre (预格式化文本元素,不会被空白折叠) `<pre&

weixin_43842821的博客 273

MaxScript批量修改材质、贴图名称

MaxScript批量修改材质、贴图名称1 实现效果1.1 修改前材质、贴图名称1.2 修改后2 代码 1 实现效果 1.1 修改前材质、贴图名称 1.2 修改后 2 代码 prefixName = "prefiname" maxFile = "maxfilepath" makeDir "newBitmappath" mapsPath = newbitmappath + "\\" fn formatStr index = ( str = index as string newS

郑德帅 3242

关于CSS(你所不知道的小秘密)

CSS规则 包含选择器和声明块 选择器:选中元素 1. 元素选择器(h1,p,a,span...) 2. id选择器(#选择器名称)唯一的 在html中的写法:id=选择器名 3. 类选择器(.选择器名称)在html中的写法:class=选择器名 声明块:出现在大括号中 声明块中含多个声明,声明以分号结束 每一个声明表达了某一方面的样式(如:背景颜色,字体颜色等属性) 添加样式的方法 1. 内部样式表(在head里面插入style标签) 2. 外部样式表(在head里面使用link标签插入css文件

weixin_43842821的博客 236

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

漫话地图之Web墨卡托公开的小秘密

漫话地图之Web墨卡托公开的小秘密 一.写在前面 什么是地图投影? 所谓地图投影,是利用一定数学法则把地球表面的经、纬线转换到平面上的理论和方法。由于地球是一个赤道略宽两极略扁的不规则的梨形球体,故其表面是一个不可展平的曲面,所以运用任何数学方法进行这种转换都会产生误差和变...

chenzhihong1214的博客 1061

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

设计工具不趁手?偷偷告诉你几个小秘密

你是不是也遇到过这样的情况:明明已经提前打过招呼休假,偏偏有“不识相”的人在你休假期间打扰你,让你帮忙修改设计稿。假如这个时候设计稿不在手边,也没有保存在网盘上,那就只能硬着头皮去公司了。非常不爽的经历是不是?现在有了这4款在线设计神器,你再也不用担心设计稿不在手边了。赶紧来看一下吧! 1.Figma Figma是既Sketch之后在国外大火的在线设计神器。别看它年轻,它几乎继承了Sketch的所有功能,相当强大且好用。很多人在刚接触Figma的时候都误以为它是Sketch的网页版,其实并不是。**它不仅

aodiaoliao的博客 326

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Web Mercator公开的小秘密

网上已经有好多作者都不吝笔墨,写了好多有关 Web Mercator这个坐标系的前世今生。多搜罗多摄入,我们会得到很多有用的信息。今天讨论到 3758,3857,102100,900913…… 这些ID又一石激起千层浪,看来整理总结下还是有点必要。 Web Mercator 如何定义? 我们知道,地理数据的坐标系一般有两大类,一是地理坐标系(GCS),是经纬度单位的椭球坐标系;二是...

小胖七少爷的博客 950

HCIE实验考场小秘密

避坑要点:华为S6720设备冷启动需等待3分钟自检(屏幕无显示≠故障)- 设备管理口优先级:优先使用USB转串口线(RJ45接口易接触不良)2. 清晰描述现象(例:"CE12800无法学习ARP表项")- 光纤模块兼容性:考场使用华为原厂多模模块(第三方模块可能失联)- 配置保存:最后15分钟必须执行(考官机自动断联不计入成绩)- 应对策略:掌握拓扑自动发现脚本(考场提供Python模板)- 黄金法则:先启动核心交换机(CE系列),再启动接入层设备。- 核心变化:故障点随机分布(相同考题不同故障位置)

IT99_的博客 827

简单的安卓app小程序代码_【不看追悔莫及】绝对是史上最全免费看漫画APP软件总结,吐血整理,无论小众大众,绝对良心好用!!...

绝对是史上最全免费看漫画APP总结(iOS+安卓),欢迎收藏,持续更新首先介绍安卓的,好用的APP真的非常多,各位慢慢看~第一款:看漫画(安卓)酷安评分4.6(满分5)民间艺术版 所有土豪漫画免费看 无任何使用限制所有土豪漫画都可以免费看~获取方式:应知乎管理员要求,到个人介绍处查看第二款:漫客栈(安卓)知名漫画APP,但是个人原因不是很喜欢,所以不做详细介绍同样民间艺术版 所有土豪漫画免费看 无...

weixin_39522103的博客 7415

lv蒙田包二手价格_别想着攒钱搞太太圈的爱马仕了,再不下手你连LV都要买!不!起!了!...

今日推文先给大家讲个鬼故事故事不长,但足够让人闻风丧胆大家竖起 听好了:公元 2020.09.01LV又、双、叒、叕、要涨!价!了!!!怎样,此刻的你们4⃣️不4⃣️和我当时听到这个消息一样想破口来句:据瑞酱心 ️B数的统计来看这,将是LV今年的第!3⃣️!次!涨!价!so, 如果你问我今年买谁家包包最省钱我一定投LV一票!!!因为按照这个涨价速度但凡手里 ️只LV的集美,今年都赚!到!了!如果你...

weixin_34609222的博客 1066

Java中final的小秘密

关于final,曾经自己不知道的一些小事。

曹建新 放飞理想,收获希望 1746

怎样隐藏计算机文件,电脑里的文件怎么绝对隐藏起来让别人看不到?

有些放在电脑里面的文件有的时候不需要默认显示出来,或者是小秘密文件,不想别人看到,所以需要进行间接的“加密”操作,那么电脑里的文件怎么绝对隐藏起来让别人看不到?下面小编就为大家介绍一下,一起来看看吧!方法/步骤1、如图,假如我们想隐藏“u”这个文件夹。2、点击开始→运行,或者按windows+r。然后输入cmd,回车确定。3、此时我们就打开了管理员的窗口,我们在窗口中输入attrib +s +a ...

weixin_33198642的博客 4478
上一篇: 半路出家OCR后成领域专家,白翔:计算机视觉科研没有捷径
下一篇: Python自动化整理文件“大升级”,任意路径下文件,都给你整理的明明白白!...
Wang_AI
博客等级 码龄12年 997粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值