def f(x):
x = 100
print x
f(x) #这样子调用为什么不行?
def f():
x = 100
print x
f() #这样子调用为什么行?
def f(x):
x = 100
print x
f(x) #这样子调用为什么不行?
因为f(x)
中的x
没有定义啊。建议格式化一下代码
第一个f(x)带了形参x;
也就是说调用它的时候,你要传一个实参,此时实参的值为x的值
def f(x):
x = 100
print x
f(x) #这样子调用为什么不行?
def f():
x = 100
print x
f() #这样子调用为什么行?
你这个问题设计到函数的传参 与函数调用
1.第一个为什么不行?函数传递参数时f(x) 这个x是一个形式参数,那么在函数调用f(x)时,这时你需要传递的参数为实际参数也就是实参,顾名思义你需要传递一个具体的值,而你传递的是个x未定义的变量,可以这么修改
x=0
f(x) 这样输出的就是100
2.第二个为什么行,因为函数不需要传递参数,x是函数内部的变量,当你调用函数f()时就是实现f()函数内部的代码,当函数运行完毕时x会被内存回收无法保存下来。如果想保存x或者在后续仍需要x的值 应该按照下面的方法写
f()
x=100
return x
re = f()
print(re)
第一个 没有赋值,下面那个直接调函数里面的值了
def f(self,x):
x = 100
print x
f(x) #这样子调用为什么不行?
def f(self):
x = 100
print x
f() #这样子调用为什么行?
你应该贴全点,前面是不是有创建对象。self.f(x)或者import这个方法之后再使用
插入代码时格式化一下
– 会发光 5年前