Я пытаюсь изучить наследование классов для ООП в Python. Следующий код делает то, что мне нужно, но возвращает None после печати данных канала при вызове функции в родительском классе. Сначала у меня не было функции, возвращающей оператор print, поэтому я добавил ключевое слово return, но это не помогло решить проблему. Я знаю, что это вопрос возврата, который я пропускаю. Любая помощь будет оценена.
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.
None
The pipe length is 30.0m, and the diameter is 0.5m.
None
0.7853981633974483
0.19634954084936207
Результат, который я ожидал:
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