python - 无法使用的函数参数

标签 python function lambda functional-programming

Python 函数中是否存在用户无法访问的参数的语法。或者这可能吗?

例如,我想定义一个函数,它从用户处获取一个参数,但需要另一个参数,该函数需要在不同的设置中调用自身,例如如:

def function(userEntry, key1 = 0):
    if key1 == 0: #setting 1 
        ##SOME INITIAL OPERATIONS ##
        key1 += 1
        function(userEntry, key1)
    if key1 == 1: #setting 2
        ##FINAL OPERATIONS##
        print('Some function of ' userEntry) 

如果按照上面的方式完成,用户仍然可以访问 key1 并根据需要初始化程序,但是,我不希望用户能够执行此操作。我希望用户仅输入 userEntry,而函数需要根据用户输入和 key1 的条件调用自身,操作会发生变化。

最佳答案

我同意拥有一个用户调用的单独函数是一个好主意。我在这里编写了一些适用于此的代码:

key = 0

def userFunc(input):
    # Do stuff
    function(input, key)

def function(userEntry, key1 = 0):
    if key1 == 0: #setting 1 
        ##SOME INITIAL OPERATIONS ##
        print('initial operation')
        print key1
        key1 += 1
        return ##to make the function not instantly repeat itself
    if key1 == 1: #setting 2
        ##FINAL OPERATIONS##
        print('final operation')
        print key1

userFunc('inValue')

这将在第一次调用 userFunc() 时执行初始操作,然后在下次调用时执行最终操作。

关于python - 无法使用的函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59347408/

相关文章:

android - 如何将此 rxjava/rxkotlin flatMap 转换为 lambda 表达式?

python - 使用多处理在 Python 中制作并行版本的 map 函数时出现 Pickle 错误

python - 读取串口的子进程 Read

python - python Flask应用程序中使用json对象上传文件的POST方法

python - django css 适用于 chrome 但不适用于 firefox

swift - 按下在函数中以编程方式创建的按钮时执行代码

python - elisp 相当于 python shlex.split?

c - 是否可以从 C 中的数组调用函数?

function - 将函数作为参数传递 - lambda 表达式错误?

c++ - 无限模板实例化