python问题,下面的代码为什么输出的是3而不是10? 20

classmyClass():def__init__(self):self.a=10defgengGai(my):my=myClass()my=myClass()my.a... class myClass(): def __init__(self): self.a=10def gengGai(my): my=myClass()my=myClass()my.a=3gengGai(my)print(my.a) 展开
 我来答
FightingToBoom
2018-07-31 · 超过33用户采纳过TA的回答
知道答主
回答量:51
采纳率:89%
帮助的人:11.5万
展开全部
您好,
def __init__ 是默认初始化,意思就是如果你不给maClass赋值,默认的self.a=10,如果已经用my.a=3赋值的话,结果就是3。
另外 gengGai(my) 这一步,my是传递在等号左边的,而myClass() 是默认赋值,然后再传递给等号左边,但是这个是传递进来的参数my直接就以及赋值给等号左边了,所以结果还是3!

个人理解,互相学习,谢谢~~
一颗程序猿o_0
2018-07-31 · TA获得超过6298个赞
知道大有可为答主
回答量:5403
采纳率:77%
帮助的人:1366万
展开全部
倒数第三行 my.a=3 你这一句把a重新赋值了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Polaris北斗
2018-07-31 · TA获得超过3204个赞
知道大有可为答主
回答量:2530
采纳率:79%
帮助的人:821万
展开全部
可能是因为函数参数传递是传值的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式