Campos e o método __init__
Inicialize o estado de uma struct.
Campos e o método __init__ é uma aula grátis de Mojo Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Mojo Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Mojo Academy inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
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 = 0The 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 = 0Why 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 = ySet 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 = yDefault 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 = 0The 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 = yQuick 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. ✨
Perguntas Frequentes
A aula “Campos e o método __init__” é grátis?
Sim — o texto completo de “Campos e o método __init__” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Mojo Academy, atualize para CoddyKit PRO. O curso de Mojo Academy inclui 4 aulas no total.
O que vou aprender em “Campos e o método __init__”?
Inicialize o estado de uma struct. Você pratica Mojo Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Mojo Academy?
Nenhuma experiência prévia é necessária. Mojo Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Campos e o método __init__”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Mojo Academy?
Sim. Cada aula de Mojo Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Definindo uma struct
- Campos e o método __init__
- Adicionando métodos a uma struct
- Structs versus classes Python