首页
Python中文网
在线手册
Python入门
Linux教程
Python高级教程
登录
注册
用户名
Email
自动登录
找回密码
密码
登录
立即注册
扫一扫,访问微社区
只需一步,快速开始
论坛
BBS
Python教程
在线手册
Python入门
Linux教程
Python高级教程
Python函数详解
搜索
本版
帖子
用户
道具
勋章
任务
设置
退出
Python论坛 - 国内最好的Python中文社区
»
论坛
›
技术交流
›
python问答 - 求助悬赏区 Help!
›
请教一个关于自定义函数的基本问题:
返回列表
查看:
3589
|
回复:
4
[求助]
请教一个关于自定义函数的基本问题:
adg777
当前离线
积分
1
1
主题
1
帖子
1
积分
贫民
贫民, 积分 1, 距离下一级还需 59 积分
贫民, 积分 1, 距离下一级还需 59 积分
积分
1
发消息
adg777
发表于 2018-6-15 21:53:08
|
显示全部楼层
|
阅读模式
t=0
y=6
def aa(x,y):
if y>5:
x=4
aa(t,y)
print(t)
这段程序我本以为会输出4,结果输出的是0。
真心请教原因,为什么输出的t不等于4呢?
回复
使用道具
举报
sheeboard
当前离线
积分
956
0
主题
956
帖子
956
积分
圣骑士
圣骑士, 积分 956, 距离下一级还需 44 积分
圣骑士, 积分 956, 距离下一级还需 44 积分
积分
956
发消息
sheeboard
发表于 2018-6-16 09:11:30
|
显示全部楼层
本帖最后由 sheeboard 于 2018-6-16 09:14 编辑
你定义的函数没输出,还有t作用域是全局的,x的作用域在函数内部。
回复
支持
反对
使用道具
举报
lyf007200
当前离线
积分
7
1
主题
7
帖子
7
积分
贫民
贫民, 积分 7, 距离下一级还需 53 积分
贫民, 积分 7, 距离下一级还需 53 积分
积分
7
发消息
lyf007200
发表于 2018-6-19 14:46:28
|
显示全部楼层
x=4 改成 t=4
回复
支持
反对
使用道具
举报
junnyjiang
当前离线
积分
2
0
主题
2
帖子
2
积分
贫民
贫民, 积分 2, 距离下一级还需 58 积分
贫民, 积分 2, 距离下一级还需 58 积分
积分
2
发消息
junnyjiang
发表于 2018-6-22 17:55:01
|
显示全部楼层
1. 输出0的原因楼上说明了作用域的问题
2. 调用方法没有返回值所以在调用后没有任何变化(所以你可以在方法体内输出解决)
3. 若不要再方法内输出代码如下:
t=0
y=6
def aa(x,y):
if y>5:
x=4
return x
t =aa(t,y)
print(t)
回复
支持
反对
使用道具
举报
szfj
当前离线
积分
3
0
主题
3
帖子
3
积分
贫民
贫民, 积分 3, 距离下一级还需 57 积分
贫民, 积分 3, 距离下一级还需 57 积分
积分
3
发消息
szfj
发表于 2018-6-24 23:40:30
|
显示全部楼层
t = 0
y = 6
def aa(x, y):
if y > 5:
global t
t = 4
aa(t, y)
print(t)
回复
支持
反对
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表