我想问一下,如何在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)
Run Code Online (Sandbox Code Playgroud)
所以我可以用say来调用它 guessgame.guess()
创建一个名为guessgame.pythen 的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
Run Code Online (Sandbox Code Playgroud)
然后从另一个模块sample.py(例如Python或IPython shell会话)中你可以做到:
import guessgame
guessgame.guess(message='something') # What you wanted
Run Code Online (Sandbox Code Playgroud)
运行时警告:从未等待过'猜测'猜测thinkgame.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
Run Code Online (Sandbox Code Playgroud)
await,需要额外注意,请阅读以下内容:https://www.python.org/dev/peps/pep-0492/#examples-of-await-expressionsguess在guessname.guess()代码中重新定义名称,因为您的函数已被调用guess,如果重新定义,您将会对其进行重写guess = ...guessgame.guess()传递了所有必需的参数,仅用于说明目的我只包含一个参数messageself在该代码中使用,这表明这应该是一个类的方法而不是一个独立的函数?请记住一些事情!| 归档时间: |
|
| 查看次数: |
358 次 |
| 最近记录: |