eu mesmo
self é o primeiro argumento em métodos, cujo nome é acordado entre programadores Python. Quando uma instância executa um método, ela automaticamente se passa como o primeiro argumento. Vamos considerar a classe User que criamos anteriormente como um exemplo:
123456789101112class User: def __init__(self, name, surname, age): # self=bob, name="Bob", surname="Smith", age=11 self.name = name # bob.name = "Bob" (name argument) self.surname = surname # bob.surname = "Smith" (surname argument) self.age = age # bob.age = 11 (age argument) bob = User("Bob", "Smith", 11) print(bob.name, bob.surname, bob.age)
O método mágico __init__ recebe os argumentos self, name, surname e age. No exemplo fornecido, quando criamos a instância bob, esses argumentos são passados como valores.
Vamos usar a função print() para examinar os argumentos passados:
123456789101112131415161718class User: def __init__(self, name, surname, age): print("===== INIT ARGUMENTS =====") print("self:", self) print("name:", name) print("surname:", surname) print("age:", age) self.name = name self.surname = surname self.age = age bob = User("Bob", "Smith", 11) print("===== GLOBAL =====") print("bob:", bob) print("bob.name:", bob.name) print("bob.surname:", bob.surname) print("bob.age:", bob.age)
No exemplo dado, é evidente que a variável global bob e o parâmetro self dentro do método __init__ referem-se à mesma instância. Isso ilustra a convenção em Python em que métodos recebem a instância como o primeiro argumento, convencionalmente chamado self.
Seguindo essa convenção, os métodos têm acesso aos atributos da instância e podem realizar operações ou acessar valores específicos para aquela instância em particular.
Nota
Em Python, o parâmetro
selfserve como o primeiro argumento nos métodos e representa o objeto da instância que chama o método. Por convenção, utiliza-se o nomeself, embora qualquer nome de variável válido pudesse ser usado. Este parâmetro fornece acesso aos atributos e métodos da instância, permitindo que o método interaja com e manipule seus próprios dados.
Para uma melhor compreensão, vamos criar uma função regular e nomeá-la init, a qual realizará as mesmas ações mas será chamada separadamente.
1234567891011class User: pass def init(instance, arg1, arg2, arg3): instance.name = arg1 instance.surname = arg2 instance.age = arg3 bob = User() init(bob, "Bob", "Smith", 11) print(bob.name, bob.surname, bob.age)
A função init recebe o primeiro argumento como uma instância e, em seguida, atribui os argumentos recebidos a ela. Da mesma forma, __init__ é utilizada ao criar uma classe, e self é um elemento necessário para a criação de diferentes métodos, os quais discutiremos mais adiante.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 2.78
eu mesmo
Deslize para mostrar o menu
self é o primeiro argumento em métodos, cujo nome é acordado entre programadores Python. Quando uma instância executa um método, ela automaticamente se passa como o primeiro argumento. Vamos considerar a classe User que criamos anteriormente como um exemplo:
123456789101112class User: def __init__(self, name, surname, age): # self=bob, name="Bob", surname="Smith", age=11 self.name = name # bob.name = "Bob" (name argument) self.surname = surname # bob.surname = "Smith" (surname argument) self.age = age # bob.age = 11 (age argument) bob = User("Bob", "Smith", 11) print(bob.name, bob.surname, bob.age)
O método mágico __init__ recebe os argumentos self, name, surname e age. No exemplo fornecido, quando criamos a instância bob, esses argumentos são passados como valores.
Vamos usar a função print() para examinar os argumentos passados:
123456789101112131415161718class User: def __init__(self, name, surname, age): print("===== INIT ARGUMENTS =====") print("self:", self) print("name:", name) print("surname:", surname) print("age:", age) self.name = name self.surname = surname self.age = age bob = User("Bob", "Smith", 11) print("===== GLOBAL =====") print("bob:", bob) print("bob.name:", bob.name) print("bob.surname:", bob.surname) print("bob.age:", bob.age)
No exemplo dado, é evidente que a variável global bob e o parâmetro self dentro do método __init__ referem-se à mesma instância. Isso ilustra a convenção em Python em que métodos recebem a instância como o primeiro argumento, convencionalmente chamado self.
Seguindo essa convenção, os métodos têm acesso aos atributos da instância e podem realizar operações ou acessar valores específicos para aquela instância em particular.
Nota
Em Python, o parâmetro
selfserve como o primeiro argumento nos métodos e representa o objeto da instância que chama o método. Por convenção, utiliza-se o nomeself, embora qualquer nome de variável válido pudesse ser usado. Este parâmetro fornece acesso aos atributos e métodos da instância, permitindo que o método interaja com e manipule seus próprios dados.
Para uma melhor compreensão, vamos criar uma função regular e nomeá-la init, a qual realizará as mesmas ações mas será chamada separadamente.
1234567891011class User: pass def init(instance, arg1, arg2, arg3): instance.name = arg1 instance.surname = arg2 instance.age = arg3 bob = User() init(bob, "Bob", "Smith", 11) print(bob.name, bob.surname, bob.age)
A função init recebe o primeiro argumento como uma instância e, em seguida, atribui os argumentos recebidos a ela. Da mesma forma, __init__ é utilizada ao criar uma classe, e self é um elemento necessário para a criação de diferentes métodos, os quais discutiremos mais adiante.
Obrigado pelo seu feedback!