草庐IT

default-lazy-init

全部标签

Python:模块和打包 - 为什么 __init__.py 文件不在 __main__.py 之前执行?

我有一个完全包含在具有以下结构的目录中的python程序:myprog/├──__init__.py├──__main__.py├──moduleone.py└──moduletwo.py我希望能够打包并分发它,以便其他开发人员可以执行pipinstall-e/path/to/git/clone/of/myprog然后可以将myprog导入他自己的程序,并用它做一些很酷的事情。我还希望能够在命令行中运行myprog,如下所示:PROMPT>pythonmyprog当我这样做时,我希望python执行__main__.py模块,它确实执行了。但是,此模块引用了一些在__init__.py

python - Spyder 集成开发环境 : How do you configure default end-of-line character?

我正在使用SpyderIDE开发代码,IDE目前的默认行尾字符集为CRLF。我想改用“\n”,因为我现有的所有源代码都使用“\n”,所以我不希望有一堆使用不同行尾字符的新文件。有没有办法在SpyderIDE中指定默认的行尾字符?如果是,怎么做? 最佳答案 (这里是Spyder维护者)要配置您想使用的行尾字符,您需要转到菜单Tools>Preferences>Editor>Advancedsettings然后到Endoflinecharacters部分并选择Spyder将在保存时使用的字符。

python - __init__() 缺少 1 个必需的位置参数

我正在尝试学习Python。这是一个非常简单的代码。我在这里要做的就是调用一个类的构造函数。在那里初始化一些变量并打印该变量。但它给了我一个错误。它在说:missing1requiredpositionalargument这是我的代码:classDHT:def__init__(self,data):self.data['one']='1'self.data['two']='2'self.data['three']='3'defshowData(self):print(self.data)if__name__=='__main__':DHT().showData()

python - 在模块内使用 __init__.py 中定义的方法

假设我有以下目录结构:lib\--__init__.py--foo.py--bar.py在foo和bar中,有不同的方法,它们都需要相同的方法。例如:富:defmethod1():win()酒吧:defmethod2(number):ifnumber__初始化__:defwin():print"YouWin!"deflose():print"YouLose...."有没有办法在模块各自的子文件中的init.py中使用win和lose方法,或者我是否必须在文件夹中创建另一个文件并让foo和bar导入它? 最佳答案 是的,只需导入__i

python - 为什么 Python 在创建实例时不调用实例方法 __init__() 而是调用类提供的 __init__() ?

我正在覆盖类的__new__()方法以返回具有特定__init__()集的类实例。Python似乎调用类提供的__init__()方法而不是特定于实例的方法,尽管Python文档在http://docs.python.org/reference/datamodel.html说:Typicalimplementationscreateanewinstanceoftheclassbyinvokingthesuperclass’s__new__()methodusingsuper(currentclass,cls).__new__(cls[,...])withappropriateargum

python 3 : Change default values of existing function's parameters?

我正在创建一个程序,它最终会调用500次print函数,还有一些其他函数。这些函数中的每一个每次都会采用完全相同的参数,如下所示:print(a,end='-',sep='.')print(b,end='-',sep='.')print(c,end='-',sep='.')print(...,end='-',sep='.')有没有办法改变print函数参数的默认值?这样我就不必每次都输入end='-',sep='.'了吗? 最佳答案 您可以使用functools.partial()定义特殊版本的print()给它默认参数:fromf

Python argparse : default argument stored as string, 未列出

我无法从文档中找出argparse的这种行为:importargparseparser.add_argument("--host",metavar="",dest="host",nargs=1,default="localhost",help="Nameofhostfordatabase.Defaultis'localhost'.")args=parser.parse_args()print(args)这是带和不带“--host”参数的输出:>>pythondemo.pyNamespace(host='localhost')>>pythondemo.py--hosthostNamesp

python - 从 __init__.py 导入 Python 文件

假设我有以下结构:app/__init__.pyfoo/a.pyb.pyc.py__init__.pya.py、b.py和c.py共享一些共同的导入(logging、os、re等)。是否可以从__init__.py文件导入这三个或四个通用模块,这样我就不必在每个文件中导入它们?编辑:我的目标是避免在每个文件中导入5-6个模块,这与性能原因无关。 最佳答案 您可以使用诸如include.py之类的通用文件来执行此操作,但这违反了推荐做法,因为它涉及通配符导入。考虑以下文件:app/__init__.pyfoo/a.pyb.pyc.py

python - window : Z3Exception ("init(Z3_LIBRARY_PATH) must be invoked before using Z3-python")

在使用使用Z3(我在VisualStudio命令提示符中构建)的python脚本(oyente)时,我遇到了以下错误:File"C:\Python27\Lib\site-packages\oyente\z3\z3core.py",line23,inlibraiseZ3Exception("init(Z3_LIBRARY_PATH)mustbeinvokedbeforeusingZ3-python")z3.z3types.Z3Exception:init(Z3_LIBRARY_PATH)mustbeinvokedbeforeusingZ3-pythonExceptionAttribute

如何为Keil安装version 5版本的ARM Compiler(Use default compliler version 5)

目录1.为什么要安装version5编译器2.从原来MDK5.37以下版本(MDK536)的软件中提取AC5的编译器3.解压完成后的文件如下图,打开ARM文件夹4.将AMRCC文件夹拷贝到你的keil安装目录的AMR文件下5.打开Keil,点击Project→Manage→ProjectItems,在Folders/Extensions选项卡中,点击UseARMCompiler最右侧的路径选择按钮6.在打开的界面中,点击AddanotherARMCompilerVersiontoList,将路径定位到刚才放置到keil安装目录下的ARMCC文件夹7.接着Close上面的页面后,点击SetupD