Skip to main content
 首页 » 编程设计

python之如何把它写成一个模块

2025年05月04日30java哥

请问,如何将以下内容作为Python中的模块编写。

    if message.content.startswith('!guess'): 
        # Game Status updating 
        now_playing = discord.Game(name='Guessing Game') 
        await self.change_status(game=now_playing, idle=False) 
 
        await self.send_message(message.channel, 'Guess a number between 1 to 10') 
 
        def guess_check(m1): 
            return m1.content.isdigit() 
 
        guess = await self.wait_for_message(timeout=5.0, author=message.author, check=guess_check) 
        answer = random.randint(1, 10) 
        if guess is None: 
            fmt = 'Sorry, you took too long. It was {}.' 
            await self.send_message(message.channel, fmt.format(answer)) 
            return 
        if int(guess.content) == answer: 
            await self.send_message(message.channel, 'You are right!') 
        else: 
            await self.send_message(message.channel, 'Sorry. It is actually {}.'.format(answer)) 
 
        # Game Status updating 
        now_playing = discord.Game(name='') 
        await self.change_status(game=now_playing, idle=False) 

这样我就可以使用 say guessgame.guess()

调用它

请您参考如下方法:

创建一个名为 guessgame.py 的 Python 模块文件,然后在其中定义:

""" 
This is the module guessgame, it lives in the file guessgame.py 
Put some documentation about your module here 
""" 
def guess(message): 
   # Put your code here 

然后从另一个模块,例如sample.py(或 Python/IPython shell session )您可以执行以下操作:

import guessgame 
guessgame.guess(message='something')       # What you wanted 

RuntimeWarning: coroutine 'guess' was never awaited guessgame.guess()

# 'await' can only be used inside a coroutine 
# if you want guess to be a coroutine, define it like below 
async def guess(message): 
   # Put your code that uses await 
   # Now you can use await expressions 

注意事项:

  • 您正在使用 await,这需要格外小心,请在此处阅读更多相关信息:https://www.python.org/dev/peps/pep-0492/#examples-of-await-expressions
  • 不要在您的guessname.guess() 代码中重新定义guess 名称,因为您的函数已经调用了guess,您将如果您重新定义guess = ...
  • , 隐藏它
  • 确保你的 guessgame.guess() 传递了所有必需的参数,只是为了说明目的,我只包含一个参数 message
  • 我看到您在该代码中使用了 self,这表明这应该是一个类的方法,而不是一个独立的函数?只是要记住一些事情!