class Book:
def init(self, name, writer, tuijian, zhuangt ):
self.name = name
self.writer = writer
self.tuijian = tuijian
self.zhuangt = zhuangt
def show_info(self):
if self.zhuangt == 0:
zhuangtai = '未借出'
elif self.zhuangt == 1:
zhuangtai = '已借出'
return '书名:%s,作者:%s,推荐语:%s \n 状态:%s'%(self.name,self.writer,self.tuijian,zhuangtai)
my = Book('飞鸟集','托尔斯泰','像鸟一样飞翔',0)
class Book:
def init(self ,name ,writer , tuijian , zhuangt):
self.name = name
self.writer = writer
self.tuijian = tuijian
self.zhuangt = zhuangt
def show_info(self):
if self.zhuangt == 0:
zhuangtai = '未借出'
elif self.zhuangt == 1:
zhuangtai = '已借出'
return '书名:《%s》,作者:%s , 推荐语:%s \n状态:%s'%(self.name,self.writer,self.tuijian, zhuangtai)
my = Book('水浒传','施耐庵','大河向东流',0)
print(my.show_info())
这两个代码是一样的 ,为啥第一个代码输入为0的时候输出为None,而第二个代码 输入为0的时候就能显示出结果?有大佬指教一下吗
因为你第一个代码show_info 函数的return 语句未与if 和 elif 这一层对齐,将return 那行向前移动一个tab(一般为4个空格)就行。
第一个里面 show_info()
函数的 return
语句缩进多了
另外,构造函数是 __init__()
不是 init()
你的代码真的可以正常运行吗
因为你第一个代码里面,return只是给elif,并没有给if,如果你在第一个代码的if里面也加上return,就有结果了