将函数分配给变量,并对它们使用随机函数

时间:2017-05-29 07:08:04

标签: python python-3.x function variables

感谢您花时间准备我的问题。

目前我正在为一个班级创建一个方法,下面是我到目前为止所做的。

def scramble_words_password(self, words):
    if words:
        words = words.split()
        words_count = range(len(words))

        while True:
            num = random.choice(words_count)
            del(words_count[num])
            password = [letter for letter in list(words[num])]

几个月前,我遇到了一个教程,解释了如何将函数赋值给变量,并在它们上使用随机的东西,但我又找不到了......

在我的函数/方法中我想要的是一种随机使用letter.lower()letter.upper()来理解我的函数/方法底线的方法,但我怎样才能实现这一点并仍然保持这一切都在理解中。

仅供参考,我知道ATM功能是一个无限循环,所以请不要说聪明的话;)

2 个答案:

答案 0 :(得分:1)

用户random.choice对要调用的方法列表:

def scramble_words_password(self, words):
    if words:
        words = words.split()
        words_count = range(len(words))
        words_funcs = [str.upper, str.lower]
        while True:
            num = random.choice(words_count)
            del(words_count[num])
            password = [random.choice(words_funcs)(letter) for letter in list(words[num])]

主调用解释random.choice(words_funcs)(letter)将从列表中选择一个随机元素,因为它们是可以将字母传递给它们的可调用对象。请记住,字符串(也包括其他内置类型)中的所有方法都可以静态调用,因此使用str.lowerstr.upper的列表都可以。

答案 1 :(得分:0)

函数名称的作用与变量非常相似。您可以将它们作为参数传递给其他函数或创建函数列表。我建议你创建一个函数列表并随机选择一个列表元素。