[Tutor] Tutor Digest, Vol 88, Issue 89

David Merrick merrickdav at gmail.com
Thu Jun 23 00:29:34 CEST 2011


Can someone show me how to code this correctly please

On Wed, Jun 22, 2011 at 10:00 PM, <tutor-request at python.org> wrote:

> Send Tutor mailing list submissions to
>        tutor at python.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
>        http://mail.python.org/mailman/listinfo/tutor
> or, via email, send a message with subject or body 'help' to
>        tutor-request at python.org
>
> You can reach the person managing the list at
>        tutor-owner at python.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Tutor digest..."
>
>
> Today's Topics:
>
>   1. Re: Class methods (Alan Gauld)
>   2. Re: sftp get single file (Peter Lavelle)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Wed, 22 Jun 2011 08:58:03 +0100
> From: "Alan Gauld" <alan.gauld at btinternet.com>
> To: tutor at python.org
> Subject: Re: [Tutor] Class methods
> Message-ID: <its7af$h8k$1 at dough.gmane.org>
> Content-Type: text/plain; format=flowed; charset="UTF-8";
>        reply-type=original
>
> "David Merrick" <merrickdav at gmail.com> wrote
>
> > class Critter(object):
> >
> >    def __init__(self, name, hunger = 0, boredom = 0):
> >    def __pass_time(self):
> >    def __str__(self):
> >    @property
> >    def mood(self):
> >    def talk(self):
> >    def eat(self):
> >    def play(self):
> >
> > class Farm(Critter):
>
> I still don't think a Farm is a type of Critter...
>
> >    def __init__(self,farmlet):
> >       Critter.__init__(self,farmlet)
>
> This will set the name to farmlet, which I don't
> think you want.
>
> >    def talk(self,farmlet):
>
> You don't need to pass farmlet in since the
> class has farmlet stored inside it.
> You can access farmlet with self.farmlet.
>
> >        for critter in farmlet:
> >            print("Hello")
> >            Critter.talk(farmlet)
>
> You want the instance to talk not the class.
> So you need to use critter.talk() And the talk
> method does not take any arguments except
> self. What you are doing here is calling the
> class method with an instance value of farmlet.
> ie self in that method gets the value of farmlet.
>
> > def main():
> >    crit1 = Critter("Sweetie")
> >    crit2 = Critter("Dave")
> >    farmlet = [crit1,crit2]
> >    f = Farm(farmlet)
> >
> >    choice = None
> >    while choice != "0":
> >        print \
> >        ("""
> >        Critter Caretaker
> >
> >        0 - Quit
> >        1 - Listen to your critter
> >        2 - Feed your critter
> >        3 - Play with your critter
> >        """)
> >
> >        choice = input("Choice: ")
> >        print()
> >
> >        # exit
> >        if choice == "0":
> >            print("Good-bye.")
> >
> >        # listen to your critter
> >        elif choice == "1":
> >            f.talk(farmlet)
> >
> >        # feed your critter
> >        elif choice == "2":
> >            f.eat(farmlet)
>
> Note that f.eat is a method you inherit from Critter.
> The Critter method does not take any arguments
> so this will fail.
>
> >        # play with your critter
> >        elif choice == "3":
> >            f.play(farmlet)
>
> Same with f.play()
>
> > Traceback (most recent call last):
> >  File "D:/David/Python/programs/critter_farm3.py", line 72, in talk
> >    Critter.talk(farmlet)
> >  File "D:/David/Python/programs/critter_farm3.py", line 38, in talk
> >    print("I'm", self.name, "and I feel", self.mood, "now.\n")
> > AttributeError: 'list' object has no attribute 'name'
>
> This is because you are accessing the method via
> the class and passing farmlet as the instance value
> rather than sending the message to the innstance
> directly. Use
>
> critter.talk()   # and no farmlet needed!
>
> HTH,
>
>
> --
> Alan Gauld
> Author of the Learn to Program web site
> http://www.alan-g.me.uk/
>
>
>
>
> ------------------------------
>
> Message: 2
> Date: Wed, 22 Jun 2011 10:07:53 +0100
> From: Peter Lavelle <lists at solderintheveins.co.uk>
> To: tutor at python.org
> Subject: Re: [Tutor] sftp get single file
> Message-ID: <4E01B0E9.8000300 at solderintheveins.co.uk>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> You could use the subprocess module to run the relevant system commands.
> More info on running sftp non-interactively (i.e from a script) can be
> found here: http://fixunix.com/ssh/238284-non-interactive-sftp-put.html
>
> Regards
>
> Peter Lavelle
>
>
> ------------------------------
>
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
>
>
> End of Tutor Digest, Vol 88, Issue 89
> *************************************
>



-- 
Dave Merrick

merrickdav at gmail.com

Ph   03 3423 121
Cell 027 3089 169
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20110623/cc5fce5c/attachment.html>


More information about the Tutor mailing list