用于打印bash颜色的python类
我有可以打印到屏幕上的python脚本,有时我希望它们是粗体或绿色的,有时是粗体和绿色的。但我似乎不知道如何做到这两个用于打印bash颜色的python类,python,string,class,printing,colors,Python,String,Class,Printing,Colors,我有可以打印到屏幕上的python脚本,有时我希望它们是粗体或绿色的,有时是粗体和绿色的。但我似乎不知道如何做到这两个 class colortext(): def __init__(self, text:str): self.text = text self.ending = '\033[0m' def bold(self): return '\033[1m' + self.text + self.ending def
class colortext():
def __init__(self, text:str):
self.text = text
self.ending = '\033[0m'
def bold(self):
return '\033[1m' + self.text + self.ending
def green(self):
return '\033[92m' + self.text + self.ending
print(colortext('hello').bold().green())
AttributeError: 'str' object has no attribute 'green'
因为您在
bold
和green
方法中返回一个字符串。我认为您实际上想要返回对colortext
对象本身的引用。因此,在这些方法中修改文本并返回self
。另外,如果希望在print
中调用该字符串时打印该字符串,请定义\uuu str\uu
函数。尝试:
class colortext():
def __init__(self, text:str):
self.text = text
self.ending = '\033[0m'
def __str__(self):
return self.text
def bold(self):
self.text = '\033[1m' + self.text + self.ending
return self
def green(self):
self.text = '\033[92m' + self.text + self.ending
return self
print(colortext('hello').bold().green())
因为您在
bold
和green
方法中返回一个字符串。我认为您实际上想要返回对colortext
对象本身的引用。因此,在这些方法中修改文本并返回self
。另外,如果希望在print
中调用该字符串时打印该字符串,请定义\uuu str\uu
函数。尝试:
class colortext():
def __init__(self, text:str):
self.text = text
self.ending = '\033[0m'
def __str__(self):
return self.text
def bold(self):
self.text = '\033[1m' + self.text + self.ending
return self
def green(self):
self.text = '\033[92m' + self.text + self.ending
return self
print(colortext('hello').bold().green())
我认为更好的策略是,您的方法将控制序列添加到用于在
\uuuu str\uuu
方法中构造最终字符串的列表中:
class ColorText():
def __init__(self, text:str):
self.text = text
self.ending = '\033[0m'
self.sequences = []
def bold(self):
self.sequences.append('\033[1m')
return self
def green(self):
self.sequences.append('\033[92m')
return self
def __str__(self):
return ''.join(self.sequences) + self.text + self.ending # ''.join(chain would probably work better
我认为更好的策略是,您的方法将控制序列添加到用于在
\uuuu str\uuu
方法中构造最终字符串的列表中:
class ColorText():
def __init__(self, text:str):
self.text = text
self.ending = '\033[0m'
self.sequences = []
def bold(self):
self.sequences.append('\033[1m')
return self
def green(self):
self.sequences.append('\033[92m')
return self
def __str__(self):
return ''.join(self.sequences) + self.text + self.ending # ''.join(chain would probably work better
它们不是
bash
颜色;它们是终端处理的ANSI转义序列。它们不是bash
颜色;它们是终端处理的ANSI转义序列