结合2个功能

时间:2011-09-21 23:41:14

标签: python function

我正在尝试将两个函数结合起来,因为A)我认为我可以和B)我认为我应该。当我单独使用这些函数时,脚本运行正常。当我将它们组合起来时,“new”变量是一个空字符串副本应该是什么。任何帮助,将不胜感激。如果您需要可以安排的完整脚本。

功能A:

def strip_domain_name(x):
    global ns
    l = x.find('@')
    ns = x[0:l]

功能B:

def encode_user_name(x,y):
    global new
    for a in x:
        if a in y:
            new = new + y.get(a)

功能A + B:

def combined_above_script(x,y,z):
    global ns
    global new  
    l = x.find('@')
    ns = x[0:l] 
    for a in y:
        if a in z:                  
            new = new + z.get(a)

以下是我正在尝试做的简化版本,并根据blender的建议进行了一些修改。最后,如果我打印aa,它应该导致'0000000'。事实并非如此。

aa = ''
bb = ''
encode = {'a':'0'}

def strip_and_encode(x,y,z):
aa = '' 
bb = x[0:x.find('@')]   

for a in y:
    if a in z:                  
        aa += z.get(a)

s='aaaaaaa@aaa'
strip_and_encode(s,bb,encode)
print(aa)

1 个答案:

答案 0 :(得分:2)

我可以轻松使用全局变量:

def script(x, y, z):
  new = ''
  ns = x[:x.find('@')]

  for a in y:
    if a in z:                  
      new += z.get(a)