为什么我不能在另一个python文件中调用func?
我创建了两个python文件:为什么我不能在另一个python文件中调用func?,python,Python,我创建了两个python文件:mineswipping.py和CmdColor.py 在mineswipping.py中,我想调用CmdColor.py中定义的func来生成具有颜色输出的shell,但失败了 CmdColor.py的代码如下: #!/usr/bin/env python #encoding: utf-8 import ctypes STD_INPUT_HANDLE = -10 STD_OUTPUT_HANDLE= -11 STD_ERROR_HANDLE
mineswipping.py
和CmdColor.py
在mineswipping.py
中,我想调用CmdColor.py
中定义的func来生成具有颜色输出的shell,但失败了
CmdColor.py
的代码如下:
#!/usr/bin/env python
#encoding: utf-8
import ctypes
STD_INPUT_HANDLE = -10
STD_OUTPUT_HANDLE= -11
STD_ERROR_HANDLE = -12
FOREGROUND_BLACK = 0x0
FOREGROUND_BLUE = 0x01 # text color contains blue.
FOREGROUND_GREEN= 0x02 # text color contains green.
FOREGROUND_RED = 0x04 # text color contains red.
FOREGROUND_INTENSITY = 0x08 # text color is intensified.
BACKGROUND_BLUE = 0x10 # background color contains blue.
BACKGROUND_GREEN= 0x20 # background color contains green.
BACKGROUND_RED = 0x40 # background color contains red.
BACKGROUND_INTENSITY = 0x80 # background color is intensified.
class Color:
std_out_handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
def set_cmd_color(self, color, handle=std_out_handle):
"""(color) -> bit
Example: set_cmd_color(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY)
"""
bool = ctypes.windll.kernel32.SetConsoleTextAttribute(handle, color)
return bool
def reset_color(self):
self.set_cmd_color(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE)
def print_red_text(self, print_text):
self.set_cmd_color(FOREGROUND_RED | FOREGROUND_INTENSITY)
print print_text
self.reset_color()
if __name__ == "__main__":
clr = Color()
clr.print_red_text('red')
clr.print_green_text('green')
clr.print_blue_text('blue')
clr.print_red_text_with_blue_bg('background')
在mineswipping.py
中,我这样做是为了调用func:
import CmdColor
...
clr = CmdColor.Color()
clr.print_red_text('red')
但是输出字符串“red”是白色的
如果我将CmdColor.py
合并到abc.py
中,则它可以输出一个红色字符串“red”
代码可在此处找到:
为什么??
谢谢 您确定
…
中没有相关内容吗?(也许你可以把它作为一个三行的最小示例?@David Robinson请查看我的最新帖子,代码的链接已经提供。谢谢顺便说一句,您可以尝试在PyPI中使用colorama模块,而不是使用Win32 Invactive…:)嗯,你的代码对我来说很好。。。