Python子类调用父类方法或子类定义的方法输出会多出个'None'
Python子类调用父类方法或子类定义的方法,为什么每次打印出来都会多一个None,要怎么修改?...
Python子类调用父类方法或子类定义的方法,为什么每次打印出来都会多一个None,要怎么修改?
展开
展开全部
这是类的继承问题。先说一下,对于python来说定义函数要用def来定义,没有这个关键字无法定义函数。
然后通常,如果父类中有调用self.a,那么这个就是类的属性,也就是说,子类中自然存在。直接在子类中直接调用即可,如果在父类中只定义了一个局部变量,那么子类是获取不到的。不过可以定义类方法,直接调用类方法获取你想要的值。
方法1.
class A: def get_A(self): self.a=1 print(self.a)class B(A): def get_B(self):#self不是python关键字,建议类方法用self作为第一个参数 self.get_A()if __name__ == '__main__':b = B()b.get_B()
然后通常,如果父类中有调用self.a,那么这个就是类的属性,也就是说,子类中自然存在。直接在子类中直接调用即可,如果在父类中只定义了一个局部变量,那么子类是获取不到的。不过可以定义类方法,直接调用类方法获取你想要的值。
方法1.
class A: def get_A(self): self.a=1 print(self.a)class B(A): def get_B(self):#self不是python关键字,建议类方法用self作为第一个参数 self.get_A()if __name__ == '__main__':b = B()b.get_B()
展开全部
我觉得最佳的回答的是不对的, 在python中若是函数没有定义return的结果,则会默认返回一个none
def func():
a = 1
b = 2
a = func()
print(a)
>>> None
在官方文档中也有说明的, 而你打印出none的原因就是因为你在类的方法
中直接打印了字符串没有返回值, 将方法中的pring改成return即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用print(my.describe_restaurant())会多输出一个None,是因为在def my.describe_restaurant(self):函数中,用了print,
def my.describe_restaurant(self):
print('The cuisine type of'+self.restaurant_name + 'is' + self.cuisine_type)
所以print(my.describe_restaurant())==print(print('The cuisine type of'+self.restaurant_name + 'is' + self.cuisine_type)),
所以输出多一个None,可以改成如下两种方法都行
1.print(my.describe_restaurant())改成直接调用my.describe_restaurant()
2.def my.describe_restaurant(self):
return 'The cuisine type of'+self.restaurant_name + 'is' + self.cuisine_type
print改成return
def my.describe_restaurant(self):
print('The cuisine type of'+self.restaurant_name + 'is' + self.cuisine_type)
所以print(my.describe_restaurant())==print(print('The cuisine type of'+self.restaurant_name + 'is' + self.cuisine_type)),
所以输出多一个None,可以改成如下两种方法都行
1.print(my.describe_restaurant())改成直接调用my.describe_restaurant()
2.def my.describe_restaurant(self):
return 'The cuisine type of'+self.restaurant_name + 'is' + self.cuisine_type
print改成return
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询