如何在python中调用带有两个参数的函数

时间:2012-03-10 15:41:16

标签: python

我想问一下如何在python中调用带有两个参数的函数。例如,
下面的代码是我想调用颜色函数的一个例子。

def color(object):
    return '\033[1;34m'+object+'\033[1;m'
tes = 'this must be blue'
print color(tes)

但这仅仅是针对一个论点。 那么我想把这两个论点与选择不同的颜色结合起来。 以下是我的虚拟代码。

def color(object,arg2):
    blue = '\033[1;34m'+object+'\033[1;m'
    red = '\033[1;31m'+object+'\033[1;m'
tes = 'this must be blue'
tes_2 = 'i wanna this string into red!!' 
print color(tes,red)
好吧,那只是我的虚拟代码,这将是一个像这样的错误..

print color(tes,red)  
NameError: name 'red' is not defined

你能告诉我如何在python中运行良好吗? TY

3 个答案:

答案 0 :(得分:2)

第二个区块中的小但基本错误:

  1. 您的论据是objectarg2object是一个保留的python单词,这两个单词都不是那么解释,而且(真正的错误)你从不在函数中使用arg2
  2. 您未在函数中使用任何return值。
  3. 当您致电该功能时,请使用color(tes,red) color(tes,tes_2)
  4. 我已经重写了这个块,看看(经过一些修改,你可以稍后进行微调)

    def color(color1,color2):
        blue = '\033[1;34m'+color1+'\033[1;m'
        red = '\033[1;31m'+color2+'\033[1;m'
        return blue, red
    
    tes = 'this must be blue'
    tes_2 = 'i wanna this string into red!!' 
    for c in color(tes,tes_2):
        print c
    

    实现你想要的另一个建议是:

    def to_blue(color):
        return '\033[1;34m'+color+'\033[1;m'
    
    def to_red(color):
        return '\033[1;31m'+color+'\033[1;m'
    
    print to_blue('this is blue')
    print to_red('now this is red')
    

    编辑:根据要求(这只是开头; oP。例如,您可以使用颜色名称和颜色代码字典来调用该函数)

    def to_color(string, color):
        if color == "blue":
            return '\033[1;34m'+color+'\033[1;m'
        elif color == "red":
            return '\033[1;31m'+color+'\033[1;m'
        else:
            return "Are you kidding?"
            #should be 'raise some error etc etc.'
    
    print to_color("this blue", "blue")
    print to_color("this red", "red")
    print to_color("his yellow", "yellow")
    

答案 1 :(得分:1)

def color(object,arg2):
    blue = '\033[1;34m'+object+'\033[1;m'
    red = '\033[1;31m'+arg2+'\033[1;m'
    return blue + red
tes = 'this must be blue'
tes_2 = 'i wanna this string into red!!' 
print color(tes,tes_2)

我认为你应该访问Python2.7 Tutorial

答案 2 :(得分:1)

red变量是在color内定义的,因此您无法在color之外使用它。

相反,您定义了变量testes_2,因此对color的调用应该看起来像print color(tes, tes_2)