Yaşar Arabacı wrote:

And What I want to do is a small economy application. It will work this way:

user add a product name, rate how much it like it over 10, and enter its price.
[repeated as many times as wanted]

user will enter h(is|er) budget.

user will use "calcute bundle" to show much of each product s?he should buy

user will repeat any step as long as s?he likes.


My advice is not to mix the backend calculation engine with the frontend user interface in the same code. Keep them separate. So you should write your classes and functions to:

* store products and prices
* calculate best buys for a budget
* etc.

And then have a separate function for the user interface, which handles:

* input and output to the user
* converting the user's text input to numbers, products, etc.
* calling the calculation functions
* printing the results

(The frontend and backend can be in the same file, but they should be separate functions or classes.)


At the moment, your code combines calculation with user-interface, which is a poor design:

class calculate:
    @staticmethod
    def bundle():
        print "your best bundle is -->"

You have the class responsible for calculating the bundle also responsible for displaying it to the user. It is better to separate those two functions, and have one class for calculating the bundle and returning it (not printing it!) and another function or class responsible for calling the calculate class with the user's input, and displaying the output to the user.

This will let you more easily change the user-interface, without needing to change the engine. Want to put your application in a GUI, or on a website? Change the user-interface parts, not the engine.

Hope this helps!




--
Steven
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to