fledgling 发表于 2021-12-14 10:45:00

类中打印类方法时,为什么会有None

class Dog:
    eyes = 2
    ears = 2
    nose = 'Very acute'
    leg = 4
    bark = 'wangwang'
    def run(self):
      print('看到小主了,我要飞快的跑向他')
    def warning(self):
      print('警告你,这是我的地盘,不许你跟我抢')
    def sleep(self):
      print('靠着小主睡觉真舒服!')

Jeff = Dog()
print(Jeff.warning())
print(Jeff.run())
编写了这个类的属性和方法,当给一个实例Jeff,想要打印有关它的方法时,为什么结果中会有None?这个None指什么?

z5560636 发表于 2021-12-14 10:48:29

本帖最后由 z5560636 于 2021-12-14 10:51 编辑

class Dog:
    eyes = 2
    ears = 2
    nose = 'Very acute'
    leg = 4
    bark = 'wangwang'
    def run(self):
      print('看到小主了,我要飞快的跑向他')
    def warning(self):
      print('警告你,这是我的地盘,不许你跟我抢')
    def sleep(self):
      print('靠着小主睡觉真舒服!')

Jeff = Dog()
Jeff.warning()   # 直接调用类方法,不需要print
Jeff.run()   # 直接调用类方法,不需要print

None 是由 print打印语句产生,它所依赖的是你 class.run() 方法的返回值,但是你提供的方法没有return 语句的返回值,所以实际上你的print(Jeff.run())   == print(None)

xfmiao 发表于 2021-12-15 00:14:01

加个return就没有none了

fledgling 发表于 2021-12-15 15:04:58

z5560636 发表于 2021-12-14 10:48
None 是由 print打印语句产生,它所依赖的是你 class.run() 方法的返回值,但是你提供的方法没有retu ...

加return语句怎么加呢?return后面写什么?

z5560636 发表于 2021-12-15 15:22:00

fledgling 发表于 2021-12-15 15:04
加return语句怎么加呢?return后面写什么?

别着急,你记着有return这个语句就行, 慢慢跟着教材走,等讲的时候,你就会恍然大悟。
页: [1]
查看完整版本: 类中打印类方法时,为什么会有None