跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 世界
  • 用户
  • 群组
皮肤
  • 浅色
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • 深色
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Cerulean)
  • 不使用皮肤
折叠
品牌标识

PyMUD官方论坛

  1. 主页
  2. 版块
  3. PyMUD讨论区
  4. 关于#var命令的bug提交

关于#var命令的bug提交

已定时 已固定 已锁定 已移动 PyMUD讨论区
2 帖子 2 发布者 177 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • H
    H
    hhyzz
    发表于 最后由 编辑
    #1

    现象:
    1.如果变量的值带ANSI颜色代码,会无法打印。
    2.如果变量的键是数字类型,会无法正常打印。
    修改方案:
    9cd7fe56-2692-4469-9187-cb97c5647650-image.jpeg
    """返回字符串的显示宽度,而不是字符数量

        注意: 字符串中若含有 ANSI 颜色等控制字符,wcswidth 会返回 -1,
        导致 len() 抛出 ValueError。此处先剥离 ANSI 转义序列再计算宽度,
        并对仍返回 -1 的情况兜底为 0。
        """
        from .session import Session
        clean = Session.PLAIN_TEXT_REGX.sub("", self.__str__())
        w = wcswidth(clean)
        return w if w >= 0 else 0
    

    95e7f3d0-79c1-4f02-8eed-8a23482548f6-image.jpeg
    def getMaxLength(self, iter: Iterable):
    return wcswidth(str(sorted(iter, key=lambda s: wcswidth(str(s)), reverse=True)[0]))

    1 条回复 最后回复
    1
    • N
      N
      newstart
      发表于 最后由 编辑
      #2

      已按你提供的见习修复上述问题,并发布0.22.8版。

      1 条回复 最后回复
      0

      你好!看起来您对这段对话很感兴趣,但您还没有一个账号。

      厌倦了每次访问都刷到同样的帖子?您注册账号后,您下次访问时都将自动回到上次浏览的位置,并可选择接收新回复的通知(通过电子邮件或推送通知)。您还可以收藏帖子、为帖子点赞,以此向其他社区成员表达您的感谢。

      有了你的建议,这篇帖子会更精彩哦 💗

      注册 登录
      回复
      • 在新帖中回复
      登录后回复
      • 从旧到新
      • 从新到旧
      • 最多赞同


      • 登录

      • 没有帐号? 注册

      • 登录或注册以进行搜索。
      Powered by NodeBB Contributors
      • 第一个帖子
        最后一个帖子
      0
      • 版块
      • 最新
      • 标签
      • 热门
      • 世界
      • 用户
      • 群组