你很亲密。您应该将字符映射到函数,而不是分配给特定变量。
import random
def make_s():
result = ''
# Here we have a mapping between the characters you see,
# and the functions you want to call.
my_funcs = {"V": make_v,
"C": make_c,
"P": make_p,
"B": make_b}
structs = ['VPCVBCC', 'VCVVC', 'VVPCC', 'VCVBCC', 'VPCCVBC', 'VCVCC', 'VPCBC', \
'VVPCVBCC', 'VCVC', 'VPCVVBC']
struct = random.choice(structs)
for elem in struct:
# Lookup the function in your dictionary
func_to_call = my_funcs[elem]
# And call it!
result += func_to_call()
return result