Python 类函数返回';无';
我试图学习python中面向对象的类继承。下面的代码实现了到目前为止我希望它实现的功能,但是在调用父类中的函数时,在打印管道数据之后,返回None。起初我没有返回print语句的函数,所以我添加了return关键字,但这并没有解决这个问题。我知道这一定是我忽略了的退货问题。任何帮助都将不胜感激Python 类函数返回';无';,python,oop,Python,Oop,我试图学习python中面向对象的类继承。下面的代码实现了到目前为止我希望它实现的功能,但是在调用父类中的函数时,在打印管道数据之后,返回None。起初我没有返回print语句的函数,所以我添加了return关键字,但这并没有解决这个问题。我知道这一定是我忽略了的退货问题。任何帮助都将不胜感激 import numpy as np class piping: def __init__(self, diameter, length): self.d = diameter
import numpy as np
class piping:
def __init__(self, diameter, length):
self.d = diameter
self.len = length
def getPipeData(self):
return print('The pipe length is %.1fm, and the diameter is %.1fm.' % (self.len, self.d))
class hydrodynamics(piping):
def __init__(self, diameter, length, fluid, density):
super().__init__(diameter, length)
self.fluid = fluid
self.density = density
self.volume = self.getVolume()
def getVolume(self):
return np.pi*self.d**2/4
sec1 = hydrodynamics(1, 10, 'water', 1000)
sec2 = hydrodynamics(0.5, 30, 'water', 1000)
print(sec1.getPipeData())
print(sec2.getPipeData())
print(sec1.volume)
print(sec2.volume)
这就是被退回的东西…(正如我所说的,到目前为止一切都很好,只是我对退货无异议)
我期望的结果是:
The pipe length is 10.0m, and the diameter is 1.0m.
The pipe length is 30.0m, and the diameter is 0.5m.
0.7853981633974483
0.19634954084936207
您应该在
getPipeData
的定义中省略print
语句,只返回字符串
或:
调用
sec1.getPipeData()
时不使用print
,因为调用sec1.getPipeData()
时将执行print
,因此在getPipeData
的定义中应该省略print
语句,只返回字符串
或:
调用
sec1.getPipeData()
而不使用print
,因为调用sec1.getPipeData()
时将执行print
,如果这确实是您希望从程序中得到的,则可以将调用代码更改为:
sec1.getPipeData()
sec2.getPipeData()
print(sec1.volume)
print(sec2.volume)
但是,最好不要打印成员函数中的任何内容。如果您将等级更改为以下等级,您可以保持驾驶代码不变
class piping:
def __init__(self, diameter, length):
self.d = diameter
self.len = length
def getPipeData(self):
return 'The pipe length is %.1fm, and the diameter is %.1fm.' % (self.len, self.d)
如果这确实是您希望从程序中得到的,那么您可以将调用代码更改为:
sec1.getPipeData()
sec2.getPipeData()
print(sec1.volume)
print(sec2.volume)
但是,最好不要打印成员函数中的任何内容。如果您将等级更改为以下等级,您可以保持驾驶代码不变
class piping:
def __init__(self, diameter, length):
self.d = diameter
self.len = length
def getPipeData(self):
return 'The pipe length is %.1fm, and the diameter is %.1fm.' % (self.len, self.d)
print
返回None
,你还期望它返回什么?@UnholySheep,你是什么意思?“getPipeData”返回的“print”语句将始终返回“None”?请使用您的代码所需的输出更新您的问题。print()
的返回值始终为None
。您正在从getPipeData()
@quamrana返回此None
,我现在明白了!我需要在代码末尾调用函数,而不是打印函数。谢谢print
返回None
,你还期望它返回什么?@UnholySheep,你是什么意思?“getPipeData”返回的“print”语句将始终返回“None”?请使用您的代码所需的输出更新您的问题。print()
的返回值始终为None
。您正在从getPipeData()
@quamrana返回此None
,我现在明白了!我需要在代码末尾调用函数,而不是打印函数。谢谢谢谢大家!@夸姆拉纳上面的评论让我明白了这一点。我真的很感谢你的帮助!谢谢大家!@夸姆拉纳上面的评论让我明白了这一点。我真的很感谢你的帮助!非常感谢。你上面的评论让我明白了这一点。我真的很感谢你的帮助!此外,这正是我将代码更改为的内容。另外,感谢您提醒我需要包括我的预期输出。下次我有问题的时候,我一定会第一次问。谢谢!你上面的评论让我明白了这一点。我真的很感谢你的帮助!此外,这正是我将代码更改为的内容。另外,感谢您提醒我需要包括我的预期输出。下次我有问题的时候,我一定会第一次问。