当前位置: 首页 > 知识库问答 >
问题:

类并定义__str__

岑光熙
2023-03-14

这是练习:

CarRecord编写特殊方法__str__()

带输入的示例输出:2009'ABC321'

年份:2009,VIN:ABC321

下面的代码是我想出来的,但是我收到了一个错误:

类型错误:__str__返回非字符串

我想不出我错在哪了。

class CarRecord:
    def __init__(self):
        self.year_made = 0
        self.car_vin = ''


    def __str__(self):
        return "Year:", (my_car.year_made), "VIN:", (my_car.car_vin)

   

my_car = CarRecord()
my_car.year_made = int(input())
my_car.car_vin = input()

print(my_car)

共有1个答案

凌宏大
2023-03-14

返回的是一个使用逗号的元组。在类内部,您还应该使用self,而不是my_car。这样试试:

    def __str__(self):
        return f"Year: {self.year_made}, VIN: {self.car_vin}"

字符串前面的f告诉Python用该代码的结果替换字符串内大括号中的任何代码。

 类似资料:
  • 类的定义 1.定义基类 任何不从另一个类继承的类都是所谓的基类 Swift类不会从一个通用基类继承. 你没有指定特定父类的类都会以基类的形式创建. class Vehicle { var currentSpeed = 0.0 var description: String { "traveling at \(currentSpeed) miles per hour"

  • 定义新的数据类型 尽管列表和元组都非常有用,但是,定义新的数据类型也是一种常见的需求,这种能力使得我们可以为程序中的值添加结构。 而且比起使用元组,对一簇相关的值赋予一个名字和一个独一无二的类型显得更有用一些。 定义新的数据类型也提升了代码的安全性:Haskell 不会允许我们混用两个结构相同但类型不同的值。 本章将以一个在线书店为例子,展示如何去进行类型定义。 使用 data 关键字可以定义新的

  • 问题内容: 我可以在类定义之外创建,甚至可以在另一个模块中创建吗? 问题答案: 是。您可以在类外部定义函数,然后在类主体中将其用作方法: 您也可以在定义一个函数后将其添加到类中: 您可以根据需要在不同的模块中定义函数和类,但是我建议不要在一个模块中定义该类,然后再将其导入另一个模块中并向其中动态添加方法(如第二个示例),因为那样的话d根据是否已导入另一个模块,其行为与类具有令人惊讶的不同。 我要指

  • 主要内容:Python类的定义前面章节中已经提到,类仅仅充当图纸的作用,本身并不能直接拿来用,而只有根据图纸造出的实际物品(对象)才能直接使用。因此, Python 程序中类的使用顺序是这样的: 创建(定义)类,也就是制作图纸的过程; 创建类的实例对象(根据图纸造出实际的物品),通过实例对象实现特定的功能。 本节先教大家如何创建(定义)一个类,如何使用定义好的类将放到后续章节进行讲解。 Python类的定义 Python 中定

  • 类是 Java 中的一种重要的引用数据类型, 也是组成 Java 程序的基本要素,因为所有的 Java 程序都是基于类的。本节介绍如何定义类。 在 Java 中定义一个类,需要使用 class 关键字、一个自定义的类名和一对表示程序体的大括号。完整语法如下: 提示:上述语法中,中括号“[]”中的部分表示可以省略,竖线“|”表示“或关系”,例如 abstract|final,说明可以使用 abstr

  • Rust 自定义数据类型主要是通过下面这两个关键字来创建: struct: 定义一个结构体 enum: 定义一个枚举类型 而常量的创建可以通过 const 和 static 关键字来创建。