<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[删除变量的cmd]]></title><description><![CDATA[<p dir="auto">写了删除变量的cmd，<a class="plugin-mentions-user plugin-mentions-a" href="/user/newstart" aria-label="Profile: newstart">@<bdi>newstart</bdi></a> 麻烦过过目，看看有没有问题</p>
<pre><code>import traceback, re, asyncio
from pymud import Command, IConfig

class CmdDelVar(Command, IConfig):
    _help = """
    通过命令行删除废弃变量的命令：
        正常指令      含义
        delvar xxx:    删除变量名为'xxx'的变量
        delvar :      删除所有变量
    """
    def __init__(self, session, *args, **kwargs):
        # delvar命令后，删除所有变量
        pattern = r"^(\bdelvar\b)(?:\s+([a-zA-Z_][a-zA-Z0-9_]*))?$"
        kwargs.setdefault("id", "cmd_delvar")
        super().__init__(session, patterns = pattern, *args, **kwargs)
    def __unload__(self):
        super().__unload__()

    async def execute(self, cmd, *args, **kwargs):
        """
        执行delvar命令，删除所有变量或指定变量
        """
        try:
            m = re.match(self.patterns, cmd)
            if m:
                para = list()
                for i in range(1, 3):
                    if m[i] != None:
                        para.append(m[i])
                if (len(para) == 2):
                    self.session.delVariable(para[1])
                    self.session.info(f"变量 {para[1]} 已删除")
                else:
                    var_list = list()
                    for var in self.session.vars.keys():
                        var_list.append(var)
                    for var in var_list:
                        self.session.delVariable(var)
                    self.session.info("所有变量已删除")
        except Exception as e:
            self.error(f"异步执行中遇到异常, {e}, 类型为 {type(e)}")
            self.error(f"异常追踪为： {traceback.format_exc()}")
</code></pre>
]]></description><link>https://bbs.pymud.cn/topic/18/删除变量的cmd</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 03:38:21 GMT</lastBuildDate><atom:link href="https://bbs.pymud.cn/topic/18.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 Jan 2026 13:26:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 删除变量的cmd on Tue, 13 Jan 2026 14:29:20 GMT]]></title><description><![CDATA[<p dir="auto">前面电脑上看的时候，代码只到unload后面就没了，我都没看到execute部分<img src="https://bbs.pymud.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f923.png?v=bd960ea4455" class="not-responsive emoji emoji-android emoji--rolling_on_the_floor_laughing" style="height:23px;width:auto;vertical-align:middle" title="🤣" alt="🤣" /><img src="https://bbs.pymud.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f923.png?v=bd960ea4455" class="not-responsive emoji emoji-android emoji--rolling_on_the_floor_laughing" style="height:23px;width:auto;vertical-align:middle" title="🤣" alt="🤣" /><img src="https://bbs.pymud.cn/assets/plugins/nodebb-plugin-emoji/emoji/android/1f923.png?v=bd960ea4455" class="not-responsive emoji emoji-android emoji--rolling_on_the_floor_laughing" style="height:23px;width:auto;vertical-align:middle" title="🤣" alt="🤣" /></p>
]]></description><link>https://bbs.pymud.cn/post/53</link><guid isPermaLink="true">https://bbs.pymud.cn/post/53</guid><dc:creator><![CDATA[newstart]]></dc:creator><pubDate>Tue, 13 Jan 2026 14:29:20 GMT</pubDate></item><item><title><![CDATA[Reply to 删除变量的cmd on Tue, 13 Jan 2026 14:06:22 GMT]]></title><description><![CDATA[<p dir="auto">目的就是调试过程中，会写一些变量，但由于没规划好，有些变量名字不合理就换掉了，但由于断线后所有变量都会持久化保存在.mud中，下次连线会自动载入，这样这些没用的变量就会常驻，用这个命令把他们清除掉。<br />
我觉得Command不是这样用的，这个cmd并不和mud游戏相关，但我利用它实现了这个想要的功能。</p>
<p dir="auto">删除代码在这</p>
<pre><code>if (len(para) == 2):
                    self.session.delVariable(para[1])
                    self.session.info(f"变量 {para[1]} 已删除")
                else:
                    var_list = list()
                    for var in self.session.vars.keys():
                        var_list.append(var)
                    for var in var_list:
                        self.session.delVariable(var)
                    self.session.info("所有变量已删除")
</code></pre>
]]></description><link>https://bbs.pymud.cn/post/52</link><guid isPermaLink="true">https://bbs.pymud.cn/post/52</guid><dc:creator><![CDATA[terry]]></dc:creator><pubDate>Tue, 13 Jan 2026 14:06:22 GMT</pubDate></item><item><title><![CDATA[Reply to 删除变量的cmd on Tue, 13 Jan 2026 13:44:11 GMT]]></title><description><![CDATA[<p dir="auto">没看懂，这是要做什么？首先，Command不是这么用的，其次，也没看到具体执行删除的操作呢？</p>
]]></description><link>https://bbs.pymud.cn/post/51</link><guid isPermaLink="true">https://bbs.pymud.cn/post/51</guid><dc:creator><![CDATA[newstart]]></dc:creator><pubDate>Tue, 13 Jan 2026 13:44:11 GMT</pubDate></item></channel></rss>