当我运行此代码时,我什么也没得到,它应该打印出折腾的结果

时间:2019-03-31 20:23:54

标签: python class

当我打电话给get_side时,它将进行折腾并将结果保存在self.side中并打印出来。当我打电话给get_side时,它会打印:

  

这是折腾无结果

为什么打印None

import random 

class Coin:

    def __init__(self):

        self.side_up='Heads'

    def toss(self):
        if(random.randint(0, 1) ==0):
            self.side_up='Heads'
        else:
            self.side_up='Tails'


    def get_side(self):
        self.side=self.toss()
        print('This is the outcome of toss', self.side)

2 个答案:

答案 0 :(得分:0)

def toss(self):
    if(random.randint(0, 1) ==0):
         return 'Heads'
    else:
         return 'Tails'

答案 1 :(得分:0)

您之所以得到None是因为

def toss(self):

...默认情况下返回None

self.side=self.toss()

...正在将self.toss()的返回值分配给self.side

解决方案是将上面的行更改为公正

self.toss()

...,因为您已经在self.side内部分配给toss

一种替代方法是使self.toss()返回另一个答案中建议的值。