python出力結果の後ろに「None」が付いています

1904 ワード

コードを実行すると、出力された結果に「None」が含まれます.
from python1.python10.car import Car

class Battery():
    """A simple attempt to model a battery for an electric car."""

    def __init__(self, battery_size=60):
        """Initialize the batteery's attributes."""
        self.battery_size = battery_size

    def describe_battery(self):
        """Print a statement describing the battery size."""
        print("This car has a " + str(self.battery_size) + "-kWh battery.")  
        
    def get_range(self):
        """Print a statement about the range this battery provides."""
        if self.battery_size == 60:
            range = 140
        elif self.battery_size == 85:
            range = 185
            
        message = "This car can go approximately " + str(range)
        message += " miles on a full charge."
        print(message)
        print(range)
    
        
class ElectricCar(Car):
    """Models aspects of a car, specific to electric vehicles."""

    def __init__(self, manufacturer, model, year):
        """
        Initialize attributes of the parent class.
        Then initialize attributes specific to an electric car.
        """
        super().__init__(manufacturer, model, year)
        self.battery = Battery()
my_tesla=ElectricCar('tesla','model s',2016)

print(my_tesla.get_descriptive_name())
my_range=Battery()
print(my_range.get_range())

結果は次のとおりです.
2016 Tesla Model S
2016 Tesla Model S
This car can go approximately 140 miles on a full charge.
140
None

最後の行のコードのprint()を削除すればmy_に変更できます.range.get_range()または関数のprint(range)をreturn rangeに変更する
python関数はreturn戻り値を使用するため、returnではなくprint出力値を使用する場合、この関数のデフォルトの戻り値はNoneです.