gpt4 book ai didi

python - 类似Python中的包含?

转载 作者:太空宇宙 更新时间:2023-11-03 19:06:10 25 4
gpt4 key购买 nike

有没有办法像在 php 中一样在 python 中进行包含?这与导入功能不同

我是 python 初学者,正在编写一个 Irc Bot。

让我解释一下我想做什么,这是到目前为止的脚本

import socket

network = 'irc.irchighway.net'
port = 6667
nick = 'bot';
canal = '#channel'
irc = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )
irc.connect ( ( network, port ) )
print irc.recv ( 4096 )
irc.send ( 'NICK '+nick+'\r\n' )
irc.send ( 'USER '+nick+' '+nick+' '+nick+' :Python IRC\r\n' )
irc.send ( 'PRIVMSG nickserv : identify xxxxx\r\n' )
irc.send ( 'JOIN '+canal+'\r\n' )
irc.send ( 'PRIVMSG '+canal+' :Im here\r\n' )
while True:
data = irc.recv ( 4096 )
if data.find ( 'PING' ) != -1:
irc.send ( 'PONG ' + data.split() [ 1 ] + '\r\n' )
print data

我想做的就是在 while 中放入一个 include,并创建另一个 .py,如下所示

机器人.py

import socket

network = 'irc.irchighway.net'
port = 6667
nick = 'bot';
canal = '#channel'
irc = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )
irc.connect ( ( network, port ) )
print irc.recv ( 4096 )
irc.send ( 'NICK '+nick+'\r\n' )
irc.send ( 'USER '+nick+' '+nick+' '+nick+' :Python IRC\r\n' )
irc.send ( 'PRIVMSG nickserv : identify xxxxx\r\n' )
irc.send ( 'JOIN '+canal+'\r\n' )
irc.send ( 'PRIVMSG '+canal+' :Im here\r\n' )
while True:
include('function.py')

函数.py

data = irc.recv ( 4096 )
if data.find ( 'PING' ) != -1:
irc.send ( 'PONG ' + data.split() [ 1 ] + '\r\n' )
print data

这样我就可以修改 function.py 文件并更改机器人的行为方式,而无需停止脚本,这意味着机器人将断开连接并重新连接到 irc 服务器。

有什么办法可以做到这一点吗?

最佳答案

没有,也不应该有。就这么简单!如果您认为必须动态生成代码(提示:通常不需要),请在正在运行的文件中的字符串中执行此操作,并使用“exec”编译它 - 无需将其编写为 Python 代码一个文本文件并导入它。

现在,您可以使用“重新加载”内置函数来执行您所描述的操作 -但它距离干净的设计还很远。

你“不能做”的实际上是在编译之前将另一个文件作为文本粘贴到当前文件中 - 就像 PHP 中发生的那样。

关于python - 类似Python中的包含?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14652958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com