首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何把它写成一个模块?

如何把它写成一个模块?
EN

Stack Overflow用户
提问于 2016-01-19 19:46:07
回答 1查看 377关注 0票数 1

我想问一问,如何用Python编写以下模块。

代码语言:javascript
复制
    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)

所以我可以使用例如guessgame.guess()来调用它

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-19 19:48:02

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

代码语言:javascript
复制
"""
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会话),您可以这样做:

代码语言:javascript
复制
import guessgame
guessgame.guess(message='something')       # What you wanted

RuntimeWarning: coroutine‘猜测’从未被期待过,guessgame.guess()

代码语言:javascript
复制
# '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的内容
  • 不要在您的guess代码中重新定义guessname.guess()名称,因为您的函数已经被称为guess,如果您重新定义guess = ...,您就会对它进行修改。
  • 确保您的guessgame.guess()被传递给所有必需的参数,只是为了说明我只包含了一个参数message
  • 我看到您在代码中使用self,这意味着这应该是类的方法,而不是独立的函数?只是要记住的东西!
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34885645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档