创建一个 returns 对象的函数

create a function that returns an object

我需要指导来创建一个 return 是 class Car 的实例化对象的函数。

必须具备以下属性:

-model(字符串数据类型值)

-公里(整数数据类型值,必须初始化为零)

-颜色(字符串数据类型值)

并且必须有以下方法:

-AddKilometers(此方法必须向公里属性加一,并且必须 return 该值)。

它接收两个参数:

-model:要分配给 Car class 对象的 'model' 属性的数据。 -color:要分配给 Car class 对象的 'Color' 属性的数据。

这是我的进步:(我是 python 初学者,所以你会看到我的代码有很多错误)

def ClassCar(model, color):
    
    class Cars:
        def __init__(self):
            self.kilometres = 0
            self.model= model
            self.color = color 
        
        def AddKilometres (self):
            self.kilometres += 1
            return self.kilometres
    
    return Cars(model,color)

如何执行函数的示例:

c1 = ClassCar('ford','black')
c1.AddKilometres() -> 1
c1.AddKilometres() -> 2
c1.AddKilometres() -> 3

我的问题是当我 运行 代码没有任何反应我做错了什么?

你可以试试这个:

class Car():
   def __init__(self, model, color):
     self.model = model
     self.color = color
     self.kilometres = 0

   def AddKilometers(self):
     self.kilometers += 1
     return self.kilometres

然后这样调用:

car = Car('ford','black')
print(car.AddKilometres()) # velocity = 1
print(car.AddKilometres()) # velocity = 2
print(car.AddKilometres()) # velocity = 3

您似乎对如何最好地编写 类 和函数有些困惑。让我们重写您的代码:

class Car:
    def __init__(self, model, colour):
        self.model = model
        self.colour = colour
        self.km = 0
    def add_km(self):
        self.km += 1
        return self.km
    def __repr__(self):
        return f'Model={self.model}, colour={self.colour}, km={self.km}'

car = Car('Ford', 'black')

print(car)
print(car.add_km())
print(car)

输出:

Model=Ford, colour=black, km=0
1
Model=Ford, colour=black, km=1

您必须将需要的属性作为参数添加到 __init__() 方法。

def ClassCar(model_name, color_name):  # changed variable names to avoid confusion

    class Cars:
        def __init__(self, model, color):  # add parameters here
            self.kilometres = 0
            self.model = model
            self.color = color

        def AddKilometres(self):
            self.kilometres += 1
            return self.kilometres

    return Cars(model_name, color_name)


c1 = ClassCar('ford', 'black')
print(c1.AddKilometres())
print(c1.AddKilometres())
print(c1.AddKilometres())

顺便说一句,您不必为此编写自己的函数。默认情况下,__init__() 方法在您 实例化 一个 class 时运行,它会 return 一个对象。所以,你可以这样做:

class Cars:
    def __init__(self, model, color):  # add parameters here
        self.kilometres = 0
        self.model = model
        self.color = color

    def AddKilometres(self):
        self.kilometres += 1
        return self.kilometres


c1 = Cars('ford', 'black')
print(c1.AddKilometres())
print(c1.AddKilometres())
print(c1.AddKilometres())

后者实际上是更好的做法,也是执行此 AFAIK 的推荐方法。