假设我有以下功能:
def xplusy(x, y):
return x+y
def xplus1(x):
xplusy = xplusy(x, 1)
return xplusy
Run Code Online (Sandbox Code Playgroud)
现在,如果我调用a = xplus1(4)它会抛出以下错误:
UnboundLocalError: local variable 'xplusy' referenced before assignment
Run Code Online (Sandbox Code Playgroud)
该错误是由于命名冲突,如果我重新定义xplus1如下:
def xplus1(x):
s = xplusy(x, 1)
return s
Run Code Online (Sandbox Code Playgroud)
它工作正常.
为什么会这样:无法正确区分变量和函数调用?
有什么方法吗?
这个问题是关于合作伙伴今天遇到的一些语法,虽然我们理解它是如何工作的,但我们不明白它为什么被允许(它的用途是什么?).
看看这个片段:
fun() -> ok end().
Run Code Online (Sandbox Code Playgroud)
没有最后一对括号,这将产生如下内容:
#Fun<erl_eval.20.82930912>
Run Code Online (Sandbox Code Playgroud)
但是对于它们,评估函数产生:
ok
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么Erlang允许这种语法?为什么我要创建一个函数只是立即调用它而不是只写出它的内容?它有什么实际用途吗?
我们唯一能想到的就是在乐趣的身体中引入局部变量(但这对我来说看起来很丑陋和不清楚).
请注意,这句法等是不是在二郎山不允许的,即使它遵循前者相同的概念:
fun() -> fun() -> ok end end()().
Run Code Online (Sandbox Code Playgroud)
(这意味着:一个函数A返回一个函数B.我正在评估A(从而产生B),然后评估B得到'ok').
我正在学习python的教程.它解释了函数是如何在Python中的第一类对象.
def foo():
pass
print(foo.__class__)
print(issubclass(foo.__class__,object))
Run Code Online (Sandbox Code Playgroud)
我得到的上述代码的输出是
<type 'function'>
True
Run Code Online (Sandbox Code Playgroud)
这个程序应该证明函数是python中的第一类对象?我的问题如下.
function.__class__意味着什么?它返回一个<type,function>并不重要的元组?我已经开始学习Python,阅读了一些教程,我看到了这句话Everything is an object in Python,它到底是什么意思?
我想根据字段的值创建一个类的对象.
例如:
if r_type == 'abc':
return Abc()
elif r_type == 'def':
return Def()
elif r_type == 'ghi':
return Ghi()
elif r_type == 'jkl':
return Jkl()
Run Code Online (Sandbox Code Playgroud)
什么是pythonic方法,以避免如果在这里.我正在考虑创建一个字典,其中r_type是key,classname是value,并且获取值并实例化,这是一种正确的方式,还是在python中有更好的惯用方法?
我有两个函数执行不同的操作,但我希望它们在另一个函数中随机调用.
例如.
def func1(): do something
def funct2(): do something else
def func3(): select funct1() or funct2() randomly
Run Code Online (Sandbox Code Playgroud) 我的老师给了我这个问题:编写一个读取整数并打印它的程序。所以我找到了这段代码:
integer_number = int(input("Enter an integer: "))
print("You entered:", integer_number)
Run Code Online (Sandbox Code Playgroud)
我想了解为什么函数:“int”先于“input”
我希望“input”函数比“int”函数先出现,因为“input”具有向用户请求信息以便用户填写信息的功能,而“int”则将给定的字符串转换为整数。