Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Python

Mikael Paavola
Mikael Paavola
2,876 Points

How to: Automate testing on my self defined objects. Especially when creation demands user input.

A simple example.

class Hero:

    name = ' '

    def __init__(self):
        self.name = input('What is your hero's name? ')

    def __str__(self):
        return 'Name: {}'.format(self.name)

bilbo = Hero() # Here we will be asked for the hero's name..

print(bilbo)

Now if i want to create a lot of heroes and test their attributes at the same time, I have to manually give input to each one to define the name attribute!

I know that this case can be solved by making it a parameter, but for some objects user input is a necessity.

How can i without changing the class structure (right word?) feed the input function what it needs?

I hope I was clear enough in my question.