【发布时间】:2018-08-06 02:46:12
【问题描述】:
我正在创建的库的目的是在您输入颜色名称时返回颜色的十六进制值。
上面的程序可以很好地处理打印,尽管它不会在 print 被 return 替换后立即返回值。 但是返回值的全部意义都消失了,因为它不能与其他程序一起使用。 返回(“#F2F3F4”)不起作用
是的我试过不带括号,它没有任何区别。 希望你能找出问题所在。提前谢谢!
class ColourConst():
def __init__(self, colour):
col = ""
#Shades of White
def Anti_flash_white():
print("#F2F3F4")
def Antique_white():
print("#FAEBD7")
def Beige():
print("#F5F5DC")
def Blond():
print("#FAF0BE")
ColourCon = {
#Shades of White
"Anti-flash white": Anti_flash_white,
"Antique white": Antique_white,
"Beige": Beige,
"Blond" : Blond
}
myfunc = ColourCon[colour]
myfunc()
ColourConst("Anti-flash white")
【问题讨论】:
-
修复编辑
-
您缺少
self作为所有方法的第一个参数(或@staticmehod装饰器?)。你永远不会实例化ColourConst对象。在一个类中包含所有这些功能是没有意义的。 -
如果你使用
return,它确实返回一个值,但如果你不使用print,它就不会打印它。此外,除非这是函数式编程的练习,否则为什么不直接使用dict将颜色名称映射到颜色代码,而不是使用那些中间内部函数? -
返回不代表打印
标签: python function dictionary switch-statement return