Python classes and init method - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: Homework (https://python-forum.io/forum-9.html) +--- Thread: Python classes and init method (/thread-2684.html) |
Python classes and init method - Alaweey98 - Apr-02-2017 Hi, I have to create a Request class with suitable attributes to hold the request Id, password, name (first and surname), programme, year of study, campus location, module name and a list of available days (Monday …Sunday) and timeslots (morning, afternoon, evening). The user must be able to enter as many unique timeslots as they wish on a single request. I also have to use the __init method to accept a request ID passed from the calling object and allow the user to input the values for the other attributes. This is what I have so far... class Request: def __init__(self, request_id, password, name, programme, year_of_study, campus_location, module_name,list_of_available_days): # This is creating methods within a class, and defining what arguments we want to accept self.request_id = request_id # Here I am setting the variables for the instance self.password = password self.name = name self.programme = programme self.year_of_study = year_of_study self.campus_location = campus_location self.module_name = module_name self.list_of_available_days = list_of_available_daysThe problem is I don't know how to get user inputs like for example the request_id and so on. How do I go about doing that? Any help would be very much appreciated thank you. RE: Python classes and init method - ichabod801 - Apr-02-2017 User input is usually done with the input function. I wouldn't think the request_id would be given by the user, I would have that set by the program. But a typical example would be: self.name = input('Please enter your name: ')The string passed as a parameter to the input function is the text prompt the user would see. Also, please use Python tags around your code (https://python-forum.io/misc.php?action=help&hid=25), and don't use formatting tags for code (this is typically caused by cut and paste from an application doing the formatting. Try pasting to a plain text editor before cutting and pasting to the forum). RE: Python classes and init method - Alaweey98 - Apr-02-2017 (Apr-02-2017, 07:28 PM)ichabod801 Wrote: User input is usually done with the input function. I wouldn't think the request_id would be given by the user, I would have that set by the program. But a typical example would be: Ok thanks for that! but the self.name=input('Please enter your name: ') does that go under all the code I have written? RE: Python classes and init method - ichabod801 - Apr-02-2017 You could put it in the __init__ when you set the attributes, but I wouldn't recommend that. I would typically have a function that gets all the required input from the user, and then passes that to __init__ when the object is created. RE: Python classes and init method - Alaweey98 - Apr-02-2017 (Apr-02-2017, 07:36 PM)ichabod801 Wrote: You could put it in the __init__ when you set the attributes, but I wouldn't recommend that. I would typically have a function that gets all the required input from the user, and then passes that to __init__ when the object is created. This is what I have so far but every time I go to run the program it doesn't run? class Request: def __init__(self, request_id, password, name, programme, year_of_study, campus_location, module_name, list_of_available_days): # This is creating methods within a class, and defining what arguments we want to accept self.request_id = request_id # Here I am setting the variables for the instance self.password = password self.name = name self.programme = programme self.year_of_study = year_of_study self.campus_location = campus_location self.module_name = module_name self.list_of_available_days = list_of_available_days self.request_id = input('What is your ID? ') self.password = input('What is your password? ') self.name = input('What is your name? ') self.programme = input("What is your programme? ") self.year_of_study = input ('What year are you currently in?') self.campus_location = input('What is your campus location?') self.module_name = input ('What is your module name') self.list_of_available_days = input('Can you list the days that you are available?') Moderator sparkz_alot:
RE: Python classes and init method - wavic - Apr-02-2017 Hello! Get rid of self.request_id = request_id # Here I am setting the variables for the instance self.password = password self.name = name self.programme = programme self.year_of_study = year_of_study self.campus_location = campus_location self.module_name = module_name self.list_of_available_days = list_of_available_daysI am so tired that I can't even think about something else. RE: Python classes and init method - Alaweey98 - Apr-02-2017 (Apr-02-2017, 07:57 PM)wavic Wrote: Hello! Get rid of RE: Python classes and init method - wavic - Apr-02-2017 If you on Linux or I think Mac too that means without errors. RE: Python classes and init method - ichabod801 - Apr-02-2017 The code is only ever going to run if you make an instance: req = Request()Note that the above won't work unless you get rid of all the parameters to __init__ as well as the code wavic recommended getting rid of. RE: Python classes and init method - wavic - Apr-03-2017 As @ichabod801 said, your code is only a definition of a class. You have to create an instance to this class in order to use it. As he did. |