0Pricing
Mojo Academy · 课时

字段与 __init__ 方法

初始化 struct 的状态

字段与 __init__ 方法 是 CoddyKit 上的免费 Mojo Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Mojo Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Mojo Academy 课程共包含 4 节课。

本课时的部分内容尚未翻译,以英文显示。

Fields Start Empty

Declaring fields gives a struct its shape, but it does not fill them in. You still need to set each field's starting value. 🧱

Meet __init__

The special method __init__ runs when you create an instance. Its job is to set up the struct's fields with real values.

fn __init__(out self):
    self.x = 0
    self.y = 0

The self Parameter

Inside __init__, self refers to the new instance being built. You assign to self.field to give that instance its data.

self.x = 0

Why out self

Writing out self tells Mojo this method is constructing the value, so self starts uninitialized and you must fill every field.

fn __init__(out self):

Taking Arguments

An initializer usually takes arguments so each instance can start with different data passed in by the caller.

fn __init__(out self, x: Int, y: Int):
    self.x = x
    self.y = y

Set Every Field

You must assign every field in __init__. Mojo will not let a struct exist with some fields left uninitialized.

Creating an Instance

To build a value, call the struct like a function. Mojo runs __init__ and hands you back a ready instance.

var p = Point(3, 4)

Reading a Field

Once built, reach a field with dot access. So p.x reads the x you stored when the instance was created.

print(p.x, p.y)

Arguments Map to Fields

A common pattern is naming arguments like the fields and assigning each across. This keeps the initializer easy to read.

self.x = x
self.y = y

Default Starting Values

You can give fields sensible defaults by assigning constants in __init__ when no useful argument is provided by the caller.

fn __init__(out self):
    self.x = 0
    self.y = 0

The Full Picture

Fields declare what data exists; __init__ decides its starting value. Together they turn a blueprint into a usable instance.

struct Point:
    var x: Int
    var y: Int
    fn __init__(out self, x: Int, y: Int):
        self.x = x
        self.y = y

Quick Check

Let us confirm how initialization works.

Recap

You used __init__ to set up fields when an instance is born. Next you will add methods so your type can act, not just hold data. ✨

常见问题解答

「字段与 __init__ 方法」课时是免费的吗?

是的 — 「字段与 __init__ 方法」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Mojo Academy 课程的其余内容,请升级到 CoddyKit PRO。 Mojo Academy 课程共包含 4 节课。

「字段与 __init__ 方法」这节课中我会学到什么?

初始化 struct 的状态 你通过在浏览器中直接运行的动手代码来练习 Mojo Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Mojo Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Mojo Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「字段与 __init__ 方法」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Mojo Academy 课中编写并运行代码吗?

能。每节 Mojo Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 定义 struct
  2. 字段与 __init__ 方法
  3. 向 struct 添加方法
  4. Struct 与 Python 类的比较
← 返回 Mojo Academy