小编Twe*_*imp的帖子

棋盘的Python视觉输出

我正在用python构建国际象棋程序。目前,我的董事会如下所示:

 8  [r] [n] [b] [q] [k] [b] [n] [r] 
 7  [p] [p] [p] [p] [p] [p] [p] [p] 
 6  [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] 
 5  [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] 
 4  [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] 
 3  [ ] [ ] [ ] [ ] [ …
Run Code Online (Sandbox Code Playgroud)

python 2d

5
推荐指数
1
解决办法
425
查看次数

带参数和不带参数的上下文装饰器

我想将上下文装饰器与带参数或不带参数的可能性结合起来。

让我们从一个可以使用参数和不使用参数的装饰器开始,例如:

import functools


def decorator(func=None, *, label=""):
    if func is None:
        return functools.partial(decorator, label=label)

    @functools.wraps(func)
    def wrap(*args, **kwargs):
        result = func(*args, **kwargs)
        print(f"RESULT {label}: {result}")
        return result

    return wrap


if __name__ == "__main__":

    @decorator(label="with arguments")
    def dec_args():
        return 1

    @decorator
    def dec_no_args():
        return 0

    dec_args()
    dec_no_args()
Run Code Online (Sandbox Code Playgroud)

还有ContextDecorator可以用作上下文管理器或装饰器的:

from contextlib import ContextDecorator

class ctxtdec(ContextDecorator):
    def __init__(self, label:str=""):
        self.label = label
        print(f"initialized {self.label}")

    def __enter__(self):
        print(f"entered {self.label}")

    def __exit__(self, exc_type, exc_value, traceback):
        print(f"exited {self.label}")

if __name__ == "__main__":
    def …
Run Code Online (Sandbox Code Playgroud)

python decorator contextmanager

5
推荐指数
1
解决办法
1692
查看次数

VSCode:终端中的 ANSI 颜色

如何使用python在终端中以ansi颜色打印文本?我有这个代码来测试什么代码对文本有什么影响:

for i in range(0, 55):
    print(f"\033[{i}mAt {i} THIS happens! \033[0m")
Run Code Online (Sandbox Code Playgroud)

但我看到的是:

?[0mAt 0 THIS happens! ?[0m
?[1mAt 1 THIS happens! ?[0m
?[2mAt 2 THIS happens! ?[0m
?[3mAt 3 THIS happens! ?[0m
?[4mAt 4 THIS happens! ?[0m
...
Run Code Online (Sandbox Code Playgroud)

它在在线编辑器 repl.it 中按预期工作。

我知道terminal.ansi主题设置中有颜色,但如何访问它们?

python ansi python-3.x visual-studio-code

4
推荐指数
1
解决办法
5375
查看次数