首页新闻找找看学习计划

关于Python类中(通过方法修改属性值不用return的问题)

0
悬赏园豆:20 [已解决问题] 解决于 2018-06-14 22:46

class Dog:

  """一次模拟小狗的简单尝试"""

  def __init__(self,name,age):

  """初始化属性"""

  self.name = name
  self.age = age
  self.p = 3

  def a(self,c):
    """将p设置成指定增加的值"""
    self.p += c(self前为什么不能加return,而下面的方法却可以)

  def sit(self):
    """模拟小狗被命令时蹲下"""
    return(self.name.title() + " is now sitting.")(此处用print()取代return,结果为什么会出现none)

my_dog = Dog('小白',10)

my_dog.a(2)
print(my_dog.p)

print(my_dog.sit())

问题补充:

目前处于刚学习阶段,还请前辈们指教!!!

TTT周清风的主页 TTT周清风 | 初学一级 | 园豆:136
提问于:2018-06-03 18:21
< >
分享
最佳答案
1

因为『+=』是一个语句而不是表达式,而return的定义就是只能return表达式。

sit函数如果没有return语句那么就相当于return None,所以结果出现None。

收获园豆:20
Uteki | 小虾三级 |园豆:573 | 2018-06-04 13:38

可是sit函数,我用print()取代return()

运行起来不应该输出print()的内容吗?

TTT周清风 | 园豆:136 (初学一级) | 2018-06-06 00:54

@TTT周清风: 

1 5
2 小白 is now sitting.
3 None

特地试了一下,这是输出

Uteki | 园豆:573 (小虾三级) | 2018-06-06 10:35

@Uteki: 我还是不咋明白,,,

TTT周清风 | 园豆:136 (初学一级) | 2018-06-14 22:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册