Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

Python Object-Oriented Python (retired) Objects __init__

Why does my step 2 not work? =)

Override init in Student. Give init a name keyword argument with a default value of your choice. Set self.name equal to the name argument.

my code is not passing: please help =)

class Student:
  name = 'kenny'

def __init__():
  name = kwargs.get('portlander') 

8 Answers

First off, the function definition will need to be indented to python knows it is supposed to belong to the class Student. Secondly, the __init__ will need to be passed the self object, like:

def __init__(self):

Also, if you would like to create an instance argument inside of the __init__ method, you will need so assign it to the self object's instance, like:

self.name = name_goes_here

When it is talking about using a keyword argument with a default value, that is done in the method declaration, like this:

def a_method_name(name="Default Name"):

That way, if the user doesn't pass anything in (in this instance) the value for the variable name will default to "Default Name", however the method can be called with an argument as well, and that argument will override the default value for name.

William Li
William Li
Courses Plus Student 26,865 Points

The init method needs to have a self, and a name argument with default value of your choice, like this:

  def __init__(self, name="kenny"):
    self.name = name
César Jardim
César Jardim
4,847 Points

I am confused, I don't recall this being shown in the video..

Thank you Adam and William. =D I was misplacing code as well as using incorrect indentation. It passed =)

class Student: name = 'innoe' def init(self): class Student: name = 'kenny' def init(name='perfie'): self.name = rupert

I have read and read, helpful instruction you have passed, but I still am not getting it to pass, yet I am certain I am doing it the right way.

This what I am trying now =)

class Student: name = 'kenny' def init(name='portlander'): self.name = rupert

please help i have tried and tried for hours whats wrong with my code class Student: name = 'sam'

def init(self, name="yolo"): self.name = name

Hi Samantha, how does this work? =)

class Student: 
    name = 'sam'

  def __init__(self, name="yolo"): 
    self.name = name
Jon Helmus
Jon Helmus
7,312 Points

class Student: name= 'name goes here'

def init(self, name="pick a name"): self.name = name