<p>另一种选择是,如果您使用的是较旧版本的<code>discord.py</code>,并且不想现在就更新10k+行代码,那么我基于<a href="https://github.com/Rapptz/discord.py/commit/0bc15fa130b8f01fe2d67446a2184d474b0d0ba7" rel="noreferrer">this commit</a>提出了以下快速而肮脏的修补程序:</p>
<pre><code>--- channel.py.old 2017-02-27 15:02:23.000000000 -0800
+++ channel.py 2020-07-22 02:44:03.000000000 -0700
@@ -27,13 +27,28 @@
from . import utils
from .permissions import Permissions, PermissionOverwrite
from .enums import ChannelType
-from collections import namedtuple
from .mixins import Hashable
from .role import Role
from .user import User
from .member import Member
-Overwrites = namedtuple('Overwrites', 'id allow deny type')
+class Overwrites:
+ __slots__ = ('id', 'allow', 'deny', 'type')
+
+ def __init__(self, **kwargs):
+ self.id = kwargs.pop('id')
+ self.allow = kwargs.pop('allow', 0)
+ self.deny = kwargs.pop('deny', 0)
+ self.type = kwargs.pop('type')
+
+ def _asdict(self):
+ return {
+ 'id': self.id,
+ 'allow': self.allow,
+ 'deny': self.deny,
+ 'type': self.type,
+ }
+
class Channel(Hashable):
"""Represents a Discord server channel.
</code></pre>
<p>(注意:这与<code>discord.py 0.16.7</code>不同。根据您运行的<code>discord.py</code>版本的不同,可能会略有不同。)</p>
<p><strong>我必须强调,这充其量只是一种黑客行为,而且无法保证这种行为会持续多久。此外,不能保证Discord不会突然引入其他一些随机API更改,这些更改将以新的有趣的方式打破旧的<code>discord.py</code>。你(和我一样)应该真正更新你的代码以符合更新的<code>discord.py</code>。我之所以提出此解决方案,是因为我怀疑您的处境与我相同(突然出现问题,需要立即恢复并运行,但没有时间快速更新10k+行代码来解决此问题。</strong></p>