python问题

y363893017 2017-08-16 01:05:59


如图是我写的python的代码以及运行的结果,其实我就是不知道红色框里面的给定的参数为什么传送进来了。在设置name以及age的值的时候我故意不满足要求,结果在执行的时候总是会把最开始传入实例的值给打印出来,这个是为什么啊?求大神帮帮忙,我是菜鸟才看了几天的资料。
...全文
112 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
y363893017 2017-08-16
  • 打赏
  • 举报
回复
引用 6 楼 u012536120 的回复:
[quote=引用 4 楼 y363893017 的回复:] 我知道他之前的值没变,我不明白的是:既然我给set_name的参数不符合要求,那么,按照道理讲,最后不应该打印“李洋”的,而是只打印“sorry”就行了,所有我其实就是向知道为什么他会把我之前实例给的name参数的值给打印出来。
为什么。因为明明就是这样。 1,你代码怎么写,程序就怎么执行。你调用get_name的时候,里面没有"sorry",所以它不会返回。 2,s已经初始化,你再次赋值没成功。所以你取里面值的时候还是原来的(那个get_name是通过s调用的)[/quote] 谢谢你的耐心解答,刚刚脑壳有点没转过弯。
cqjtld 2017-08-16
  • 打赏
  • 举报
回复
程序运行完全没问题。。
混沌鳄鱼 2017-08-16
  • 打赏
  • 举报
回复
劝楼主不要学习编程了,不然今后你会非常痛苦的。 我实在帮不了你了。
sanGuo_uu 2017-08-16
  • 打赏
  • 举报
回复
引用 4 楼 y363893017 的回复:
我知道他之前的值没变,我不明白的是:既然我给set_name的参数不符合要求,那么,按照道理讲,最后不应该打印“李洋”的,而是只打印“sorry”就行了,所有我其实就是向知道为什么他会把我之前实例给的name参数的值给打印出来。
为什么。因为明明就是这样。 1,你代码怎么写,程序就怎么执行。你调用get_name的时候,里面没有"sorry",所以它不会返回。 2,s已经初始化,你再次赋值没成功。所以你取里面值的时候还是原来的(那个get_name是通过s调用的)
y363893017 2017-08-16
  • 打赏
  • 举报
回复
引用 3 楼 xpresslink 的回复:
不用折腾了,程序工作完全正确。
就是因为正确所以才感觉不对劲哦,按照我的意思就是说我既然s.set_name("2李小洋")了,那么我再print(s.get_name),按照我的想法就是只应该打印出sorry,而不应该打印出“李样”,所以我想知道为什么会打印出“李样”?
y363893017 2017-08-16
  • 打赏
  • 举报
回复
引用 2 楼 u012536120 的回复:
2个是一样的,以name为例。 s一开始就赋值了,是固定了,你name错误后进入print 'sorry' 所以,s的name值没有改变,还是你一开始赋值的那个 如果不喜欢它有值,可以在sorry后,把name赋值成空
我知道他之前的值没变,我不明白的是:既然我给set_name的参数不符合要求,那么,按照道理讲,最后不应该打印“李洋”的,而是只打印“sorry”就行了,所有我其实就是向知道为什么他会把我之前实例给的name参数的值给打印出来。
混沌鳄鱼 2017-08-16
  • 打赏
  • 举报
回复
不用折腾了,程序工作完全正确。
sanGuo_uu 2017-08-16
  • 打赏
  • 举报
回复
2个是一样的,以name为例。 s一开始就赋值了,是固定了,你name错误后进入print 'sorry' 所以,s的name值没有改变,还是你一开始赋值的那个 如果不喜欢它有值,可以在sorry后,把name赋值成空
y363893017 2017-08-16
  • 打赏
  • 举报
回复
我自己想到的办法就是在else里面也写一个print,最后调用的时侯就不用写print了,这样就达到了我的想法。但是我想知道这里面为什么是这样的?

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧