数据类
客人已经有了名字 nora 和座位 12,可把它们装起来的 init 你并没有自己写。Guest 上面那行 @dataclass 会按下面的字段把这一步建好。str 你也不用写。这里既没装包,也没建文件夹。
from dataclasses import dataclass
@dataclass
class Guest:
name: str
seat: int
guest = Guest("nora", 12)
print(guest)
客人还是要你自己造:Guest("nora", 12)。先放词,再放数字,因为字段就是这个顺序。print(guest) 把两样东西写在同一行,屏幕上恰好只有这一行:Guest(name='nora', seat=12)。这位客人不在别的对象里面,Guest 也不是别的类的子类。
nora 带引号,因为它是存下来的词;12 没有引号,因为它是整数,也没有小数点。往屏幕上写的是 print。guest.name 是 nora,guest.seat 是 12。没有第二行,没有加 badge,也没写 blue。str 你从没敲过,打印出来的这一行长什么样,由 @dataclass 决定。去掉 print,屏幕就是空的,因为造出客人并不等于把它写出来。
座位不填,程序会停住。程序里没有 Guest("nora") 这种写法,seat 字段没有值,所以停在 TypeError。不会写出 None,程序也不会往下走。name: str 和 seat: int 这两行是字段,不会再造一位客人,也不会建文件夹。别写 class Guest(Pen),那种写法会得到子类。装着笔的包也不是这一页要讲的。这里只有一位客人,两个字段都在他身上。
一位客人,两个字段
造出一位客人,填好两个字段,print 把它们写到屏幕上。下一页是找错。这一页只存一个名字和一个座位,再把它们写出来。
🧠 测试您的知识
测试您的知识
通过这个互动测验挑战自己,看看你对这个主题的理解程度如何
📝 说明
- 仔细阅读每个问题
- 为每个问题选择最佳答案
- 您可以随时重新参加测验
- 您的进度将显示在顶部