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

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.