python中导入包中的__init__文件夹的一个重要作用(去年对文件名的导入)_Takoony的博客-程序员宅基地_init文加直接导入包名就可以了吗

技术标签: python  

问题来源:使用bayes包时,发现可以直接导入包名然后跳过文件名,直接引入文件中定义类;

假如说包名为bayes_opt,该文件夹目录下,存在一个文件名为bayesian_optimization;该文件中定义一个类名为BayesionOptimization; 在应用程序中可以直接导入

from bayes_opt import BayesianOptimization

可以看到直接跃过了文件名bayesian_optimization;和我所理解的不符;

 

假设:难道新的python3.6有了新的功能?

编写一个简单的包名Tpackages,文件名ny_test,定义一个类aa,一个函数bb

在main函数中写入:

from Tpackages import aa

aa无法识别;

查看bayes_opt包中__init__文件夹,发现多了几个命令;

假设2:__init__文件起到作用了?

该文件中存在语句:如图所示:

于是在自己的Tpackages包下__init__文件中添加

from .ny_test import aa

然后再执行main文件,就ok了;

相当于init文件间接执行了文件导入;所以在外部调用时,就没有这一步;本质上是有,只是被隐藏了; 本质上都必须:包名->文件名->对象;之所以能成功包名->对象;是因为__init__文件中加入了文件名->对象;直接将对象添加到包的第一个子集中了

 

  函数亦可;本质上是导入可见;

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ningyanggege/article/details/89226504

智能推荐

使用Qt导出Excel文件。_iamspoon的博客-程序员宅基地

查看Excel文件分两种:office和WPS,如果电脑里只装了WPS,那这里会有个小坑,稍后会讲。主要用QAxObject对象来实现。 QAxObject excel("Excel.Application"); excel.dynamicCall("SetVisible(bool)",false); //如果为了看自己的程序到底怎样工作,可以设置为true QAxO

java 监听多线程超时:Future_陈劲松的博客-程序员宅基地_线程超时监控future

众所周知多线程是个好东西,合理地使用多线程可以提高资源利用率,缩短大批量任务的处理时间。当然高效的同时问题也是少不了的。本文将介绍一些针对线程超时的处理方法,希望对初学者能有所帮助 ^_^场景1. 线程意外地在某个while或者哪里陷入死循环了(如果不是意外地请一定先修正逻辑错误),这个线程就这样一直在死循环中,并且随着时间推移可能会加入新的循环伙伴,最坏的情况是最终所有线程都不干活了。我希望设一...

C++的I/O(vc版)(六)_wangyanphp的博客-程序员宅基地

首先回忆一下,我们已经分析过的类:基本的流类完成:流状态信息,格式化信息,其中一些不能用掩码表示,需要特定的数据成员,locale对象,流缓冲类指针,耦合的ostream;基本的流缓冲类完成:六个指针的存储。这个我们分析的是basic_ostream 首先是类中会用到的类型声明: typedef basic_ostream _Myt; typedef basic_ios _Myios

TextView设置android:ellipsize="marquee"属性,无法实现跑马灯效果的解决方法_snow_lyGirl的博客-程序员宅基地_truncateat.marquee

TextView动态赋值时,需要在java代码中设置跑马灯效果才能生效 private void setTextMarquee(TextView textView) { if (textView != null) { textView.setEllipsize(TextUtils.TruncateAt.MARQUEE);

坚持练字一年是什么样的体验?_GarfieldEr007的博客-程序员宅基地

黄金体验 ,金融221 人赞同实名反对那个林安的回答。无用也就罢了,还极度误人。长篇大论,或许只是为了一己私利。如果有心练字,你会发现,无论你去报任何书法培训班、请教任何当代书法家或研读任一位古今书法大师的平生经历,都有一个共同点,一切书法入门都是从古贴开始。二王张怀、颜柳欧赵、苏黄米蔡等书法大家,他们代表着中国书法的最高水平,后人无一不是从学习他们开始,而千百年来,又鲜有

Mongodb compass快速下载方法(同官网)[email protected]作死星人的博客-程序员宅基地

1.复制链接https://downloads.mongodb.com/compass/mongodb-compass-1.25.0-win32-x64.zip2.打开迅雷应用程序两分钟下载完成详细安装推荐参考链接(实操可用):https://blog.csdn.net/weixin_41466575/article/details/105326230

随便推点

EIP and Public IP_weixin_34239169的博客-程序员宅基地

二者最主要的区别在于:当实例每次restart后,public IP会发生变化,而Eip不会,EIP是静态IP地址;EIP是分配给账户使用的,当EIP没有被使用的时候需要付费;EIP可以直接从一个host移动到另一个host,不需要DNS的更新。 转载于:https://blog.51cto.com/zyzdbk/1837203...

php团队协作工具_成为PHP专业人员:团队合作的社会方面_culh2177的博客-程序员宅基地

php团队协作工具After discussing the general guidelines to reaching an Intermediate+ level in PHP development in Part 1 and the importance of others around you in Part 2, this article will focus on social as...

【每周一文】Learning Classifiers from Only Positive and Unlabeled Data(2008)_下一步的博客-程序员宅基地_learning classifiers from only positive and unlabe

概述本文也是用于求解PULearning问题,并且提出在样本满足一定分布情况下,根据正样本和未标记样本作为负样本训练出来的分类模型,预测出来的结果和该样本属于正样本的概率存在一个固定常数系数。 根据该假设提出两种模型训练思路,能够得到最好的效果。问题求解对于给定的样本数据引入第三个随机变量S表示该样本是否被标记过,则p(x,y,s)满足一定的概率分布。 变量含义x为样本特征数据

nagios用NsClient自定义windows监控_weixin_33997389的博客-程序员宅基地

Nagios用NsClient自定义windows监控NsClient++来监控windows主机有三种方式:check_nt,check_nrpe,nsca.相对而言,check_nrpe已经可以满足大部分的监控任务要求了。这三种方式在nsclient的PDF中说的很详细,但全是E文,根据我自己的部署过程,边做边写下自己理解:check_nt的使用方法:这是NsClient++默认的使用方法,但...

IOS开发UI篇--使用UICollectionView实现一个列表头部拉伸效果的案例_yixiangboy的博客-程序员宅基地_uicollectionview 头部

一、案例演示本案例Demo演示的是列表头部具有拉伸的效果,具有良好的用户体验。 当列表的offsetY小于0的时候,顶部的图片会跟随手势的下拉将头部的宽高进行相应地缩放。如下图所示: 二、知识储备2.1、自定义UICollectionViewFlowLayout自定义UICollectionViewFlowLayout就是UICollectionView功能强大的精髓所在,它负责了将各个Cell

springboot使用Spring Security+OAuth2做权限控制_烟火里的尘埃.的博客-程序员宅基地

文章来源:http://lxgandlz.cn/404.html  前面有一篇文章Spring+Spring Security+OAuth2实现REST API权限控制,讲了Spring+Spring Security+OAuth2来实现REST API权限控制,出于快速实现的原因,里面的用户信息和认证token都是保存在内存中。这样并不符合实际项目场景。所以,这篇文章就是讲述如何从数...

推荐文章

热门文章

相关标签