一,模块的介绍 1,什么是模块 在 Python 中,模块是一种组织 Python 代码的方法。模块可以包含定义(例如类、函数和变量)和可执行代码。...__main__变量: 在Python中,__main__ 是一个特殊的模块,它主要用于执行模块中的main()函数。...当你直接运行一个Python文件时,这个文件中的代码会进入__main__模块。换句话说,__main__模块是Python解释器直接运行的入口。...在Python中,一个模块的__name__属性会自动设置为’__main__',如果你直接运行一个模块,你可以通过这个属性来判断当前的模块是否是__main__模块。...例如,下面的代码: if __name__ == '__main__': print("这是一个直接运行的模块") 当我们运行这条代码所写在的文件的时候:__name__就会直接被设置成__main
NameError 在python中,如果引用的变量未定义,则会报告NameError: name '变量名' is not defined。 如下代码抛出了一个异常: !...提示: 一般来说,在python中,需要保证变量的定义在使用的前面。...IndexError 在python中,如果list、tuple中的元素被引用的索引值超过了元素的个数,则会报告IndexError: list index out of range。...原因: list的索引值超过了list元素的个数。 KeyError 在python中,如果dict中的key不存在,则会报告KeyError: 'key'。 如下代码抛出了一个异常: !...TypeError 在python中,如果一个对象不是内置对象的实例,则会报告TypeError。 如下代码抛出了一个异常: !
包的说明 每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录(文件夹),而不是一个包。...__init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是对应包的名字。调用包就是执行包下的__init__.py文件。...问题描述 在一个文件中要引入一个自定义包中的模块,出现模块无法导入问题, 此时采取第一种解决方法: 先导入sys模块 然后通过sys.path.append(path)函数来导入自定义模块所在的目录 导入自定义模块...上面的解决方法会导致以下问题: 可以在本地成功运行,但是打包成exe以后,到别的电脑上无法运行,因为sys.path.append(path)里面的path在别的电脑上不一定存在。...第二种解决方法: 不在代码里使用sys.path.append(path),保证代码里不存在本地绝对路径,把要导入的自定义包拷贝到site-packages目录下, 然后再打包成exe以后就可以在别的电脑上成功运行
解决 MacOS 系统中 Goland IDEA 运行时报错 “无法使临时文件成为可执行文件” 的问题 问题描述 在使用 GoLand IDEA 开发 Golang 项目时,您可能会遇到如下错误信息:.../tmp/GoLand/___go_build_GoToolProject__5_ 该问题通常发生在执行 go build 或运行 Golang 项目时,GoLand IDEA 无法将临时文件转换为可执行文件...解决方案 解决方法: 关闭所有项目: 首先,关闭当前正在运行的项目以及所有打开的文件,确保没有任何 Goland IDEA 的项目正在运行。...通过上述步骤,您通常可以解决 “无法使临时文件成为可执行文件” 的错误。如果问题仍然存在,您可以查看 GoLand IDEA 的日志文件,以获取更多的错误信息,或者尝试重新安装 GoLand。...如果问题依然存在,欢迎继续询问!
此外,我定义了一些工具类和函数来简化代码并使一些配置更加清晰。 该项目的框架如下: :page_with_curl: main.py: 该框架的程序入口文件。...当然,如果不需要转换,也需要调用这个函数,因为该函数可以配置一些文件存储路径,例如日志存储路径、预训练参数文件存储路径、聚类可视化图像存储路径等。...:airplane: 步骤3:在命令行中进入main.py所在目录,并用python运行main.py文件。如果是在集成开发环境中可以直接运行main.py文件。...注意,要把模型所有需要预训练的部分都写到其中,如果没有,请将列表设置为空而不能删除,因为后面的代码要判断是何种类型的预训练,如果是空的则表示不需要预训练,这一点很重要,否则代码不能正常运行。...同时,注意检查你的预训练类型是否在if-else语句中,如果不在,请手动添加。 :airplane: 步骤4: 运行你的代码!
php : 无法将“php”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。...composer : 无法将“composer”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。...请检查名称的拼写,如果包括路径,请确保路径正确,然后再 是因为php环境变量的问题,设置完后 重启电脑 Buy me a cup of coffee :)
vue : 无法将“vue”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确, 然后再试一次。
yield / send 协程的运行 在生成器中使用 yield 关键字,而后生成器的调用方使用 .send(value) 方法发送数据,该数据 value 就会成为生成器函数中 yield 表达式的值...如果将上述例子中预激的代码注释掉,运行后会报错: Traceback (most recent call last): File "test.py", line 15, in ...async / await 从 python3.5 开始,Python 新加了一种协程定义方法 asyncdef。...简单的讲,async 定义一个协程,await 用于挂起阻塞的异步调用接口;而协程的调用方法在 Python3.7 中做了些许改动,所以这一节以 Python 版本分成两部分来讲解。...python 3.5 - 3.6 阅读协程的官方文档就会知道:协程本身无法运行,只有将其置于事件循环(event_loop)中才能运行其代码。那么事件循环是什么?
加载预训练模型在 Python 中加载预训练好的 DeepSeek 模型:from tensorflow import kerasimport numpy as npmodel = keras.models.load_weights...模型调优(可选)如果需要根据具体需求对模型进行微调,可以使用简易的训练脚本:import tensorflow as tf# 定义输入和输出通道数input_shape = (512, 512) #...__name__)@app.route('/search', methods=['POST'])def search(): data = request.json # 调用预训练模型进行搜索...TensorBoard(log_dir='logs', profile_batch=10, period=20)# 定义训练函数...环境准备安装Python和相关依赖:# 安装Python和pip(如果尚未安装)sudo apt-get updatesudo apt-get install python3 python3-pip#
前言 yield这个关键字很早的时候就了解过,但一直都只了解其基本使用,即转变函数为生成器的使用,节省大型迭代时的内存空间,但其实yield在python的很多特性中都起着重要的作用 这篇文章就详细展开一下...,执行效率高很多 可迭代对象,迭代器与生成器的关系 简单来说可以用以下的韦恩图表示: 从设计角度讲,容器是我们最常见最常用的数据结构,它们都是可迭代对象,而另一方面我们也可以在自定义类中实现__iter...,并且在进行for循环时每次只占用一个数的内存 但使用for循环进行迭代我们无法获取到生成器函数的返回值(生成器结束迭代时会抛出StopIteration异常,但这个异常被for循环捕获并pass了);...Python对协程的支持是通过generator实现的,在一般的generator使用中,我们不但可以通过for循环来迭代,还可以不断调用next()函数获取由yield语句返回的下一个值;但在生成器中我们还可以通过...,或者难度极高 由于GIL锁的存在,多线程的运行需要频繁的加锁解锁,切换线程,这极大地降低了并发性能 而有了协程,我们就可以非常优雅高性能地实现一些高IO的并发任务了 yield from yield
装饰器可以像常规的可调用对象那样调用,其参数是另一个函数。 装饰器的执行 装饰器在函数定义之后立即运行 函数装饰器在导入模块时立即执行,被装饰的函数只在明确调用时运行。...,其中包含了「函数定义体中引用」、「不在定义体中定义的非全局变量」 关键是它能访问定义体之外定义的非全局变量 自由变量:未在本地作用域中绑定的变量 闭包是一种函数,它会保留定义函数时存在的自由变量的绑定...,这样调用函数的时,虽然作用定义域不可用,但是仍能继续使用那些绑定。...1 if __name__ == '__main__': func(5) # [0.00000112 s] func(5) 该装饰器的缺点:不支持关键字参数,遮盖了被装饰函数的__name...如果后来在新的模块中定义了新的类型,可以轻松地添加一个新的专门函数来处理那个类型。 还可以为不是自己编写的或者不能修改的类添加自定义函数。
从语法上来看,协程和生成器类似,都是定义体中包含yield关键字的函数。...当我们调用send方法后yield会收到这个值并赋值给x,而当程序运行到协程定义体的末尾时和用生成器的时候一样会抛出StopIteration异常 如果协程没有通过next(...)激活(同样我们可以通过...关于调用next(...)函数这一步通常称为”预激(prime)“协程,即让协程向前执行到第一个yield表达式,准备好作为活跃的协程使用 协程在运行过程中有四个状态: GEN_CREATE:等待开始执行...通过上面的几个例子我们发现,我们如果想要开始使用协程的时候必须通过next(...)方式激活协程,如果不预激,这个协程就无法使用,如果哪天在代码中遗忘了那么就出问题了,所以有一种预激协程的装饰器,可以帮助我们干这件事...,在使用yield from句法调用协程的时候,会自动预激活,这样其实与我们上面定义的coroutine装饰器是不兼容的,在python3.4里面的asyncio.coroutine装饰器不会预激协程,
我发现有不少朋友写 Python 脚本非常随意,要么不用函数,要么函数随处定义,反正第一眼看不出要执行的第一行代码位于何处,这样的脚本可读性很差,而且容易隐藏 bug,解决这个问题很简单,当我们写 Python...也就是说 if __name__ == "__main__": 后面的代码在 import 的时候是不会运行的。...假如你在自己脚本里定义了全局变量,别人如果在不合适的位置导入了 *,就会把你这个全局变量也导入,导致变量覆盖,很容易会出现 bug。...第二,它让 Python 文件更加易读,对 IDE 友好 有了 if __name__ == "__main__": 相当于 Python 程序也有了一个入口函数,所有的变量都从这里开始定义和使用,我们可以清晰的知道程序的逻辑开始于何处...其实我是这样理解的,Python 的多程序就是启动了多个 Python 解释器,每个 Python 解释器都会导入你这个脚本,复制一份全局变量和函数给子进程用,如果有了if __name__ == "_
具体来说,我重新设计了代码的架构,让你可以在我的框架中轻松运行不同模型的代码,并且提升了可扩展性。此外,我定义了一些工具类和函数来简化代码并使一些配置更加清晰。...当然,如果不需要转换,也需要调用这个函数,因为该函数可以配置一些文件存储路径,例如日志存储路径、预训练参数文件存储路径、聚类可视化图像存储路径等。...步骤3:在命令行中进入main.py所在目录,并用python运行main.py文件。如果是在集成开发环境中可以直接运行main.py文件。...以训练DAEGC为例: 我们需要先预训练GAT模块: python main.py --pretrain --model pretrain_gat_for_daegc --dataset acm --...cora -D Train_DAEGC_1_iteration_on_the_ACM_dataset 以训练SDCN为例: 我们需要先预训练AE模块: python main.py --pretrain
多编程语言都有一个特殊的函数,当操作系统开始运行程序时会自动执行该函数。这个函数通常被命名为main(),并且依据语言标准具有特定的返回类型和参数。...本文结束时,您将了解以下内容: 什么是特殊的name变量以及Python中如何定义它 为什么要在Python中使用main()函数 在Python中定义main()函数有哪些约定 main()函数中应该包含哪些代码的最佳实践...Python中的基本main()函数 一些Python脚本中,包含一个函数定义和一个条件语句,如下所示: 此代码中,包含一个main()函数,在程序执行时打印Hello World!。...“如何运行Python脚本”一文也讨论了三者的差别。 基于命令行执行 在这类方法中,Python脚本将通过命令行来执行。 执行脚本时,无法与Python解释器正在执行的代码交互。...技术细节:Python文档中具体定义了name何时取值为'main'。 当通过标准输入,脚本或者交互提示中读取数据时,模块的name将取值为'main'。
协程的概念 协程(coroutine)通常又称之为微线程或纤程,它是相互协作的一组子程序(函数)。所谓相互协作指的是在执行函数A时,可以随时中断去执行函数B,然后又中断继续执行函数A。...说明:协程适合处理的是I/O密集型任务,处理CPU密集型任务并不是它的长处,如果要提升CPU的利用率可以考虑“多进程+协程”的模式。...Python 3.4:引入asyncio.coroutine装饰器用来标记作为协程的函数,协程函数和asyncio及其事件循环一起使用,来实现异步I/O操作。...Python 3.5:引入了async和await,可以使用async def来定义一个协程函数,这个函数中不能包含任何形式的yield语句,但是可以使用return或await从协程中返回值。...如果不愿意每次都用这样的代码来“预激”生成器,可以写一个包装器来完成该操作,代码如下所示。
先给出结论,对该语句用法简单的解释就是:如果if __name__ == '__main__' 所在模块是被直接运行的,则该语句下代码块被运行,如果所在模块是被导入到其他的python脚本中运行的,则该语句下代码块不被运行...其中C 和 C++ 都需要有一个 main 函数来作为程序的入口,也就是程序的运行会从 main 函数开始。同样的,Java 和 C# 则必须要有一个包含 Main 方法的主类来作为程序入口。...而if __name__ == '__main__' 的作用就是定义这两种情况执行代码的执行方式,在该语句下的代码只有在文件作为脚本直接执行情况下才会被执行,而import到其他脚本中是不会被执行的。...area of the circle: 12.5663704 从输出结果可以看出,param.py 中的 main 函数也被运行了,实际上我们不希望它被运行,这时我们就可以用if __name__..._name__ == '__main__'条件为假,所以无法执行其后的代码。
协程定义 协程的底层架构是在pep342 中定义,并在python2.5 实现的。 python2.5 中,yield关键字可以在表达式中使用,而且生成器API中增加了 .send(value)方法。...python3.3后,pep380对生成器函数做了两处改动: 生成器可以返回一个值;以前,如果生成器中给return语句提供值,会抛出SyntaxError异常。...(在yield表达式处暂停) print(inspect.getgeneratorstate(my_coro)) # 调用这个方法后,协程定义体中的yield表达式会计算出42;现在协程会恢复,一直运行到下一个...primer函数;调用primer函数时,返回预激后的生成器。...**kwargs): # 把装饰器生成器函数替换成这里的primer函数;调用primer函数时,返回预激后的生成器。
这是: a ,如果最后一个代理没有定义的stroutput_type 如果代理定义了 output type ,则为 type 的对象。...如果发生切换,则意味着任何 Agent 都可能是最后一个 Agent,因此我们无法静态地知道可能的输出类型集。...代理 SDK 将自动设置该工具: 工具的名称将是 Python 函数的名称(或者您可以提供名称) 工具描述将取自函数的文档字符串(或者您可以提供描述) 函数 inputs 的架构是根据函数的参数自动创建的...default_tool_error_function 如果您传递自己的 error 函数,它会运行该函数,并将响应发送到 LLM。 如果您显式传递 ,则将重新引发任何工具调用错误供您处理。...(refund_agent)]) 通过函数自定义切换handoff() handoff() 函数允许你自定义内容。
我们目前支持了新闻领域,网络领域,医药领域,旅游领域,以及混合领域的分词预训练模型。 在使用中,如果用户明确待分词的领域,可加载对应的模型进行分词。...如果用户无法确定具体领域,你也可以使用 pkuseg 默认的通用模型 更高的分词准确率。相比于其他的分词工具包,当使用相同的训练数据和测试数据,pkuseg 可以取得更高的分词准确率。...选择从 GitHub 下载,可运行以下命令安装: python setup.py build_ext -i GitHub 上面的代码并不包括预训练模型,因此需要用户自行下载或训练模型,使用时设定 "model_name...多进程分词 当将以上代码示例置于文件中运行时,如涉及多进程功能,需要使用 if __name__ == '__main__' 保护全局语句。...预训练模型 pkuseg 除了给我们提供默认的训练模型之外,我们还可以指定以下预训练模型,只需要在调用的时候将 model_name 改成以下你需要的名称即可!