Classes, sef en input

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Classes, sef en input

Marc Stevens
Geachte Heer/Mevrouw,



Ik heb heel internet af ge-googled maar niet veel kunnen vinden over ‘self’ in combinatie met ‘input’.
Dat laatste ‘input’ wordt bijna niet behandeld.
Hoe zou U het volgende programmaatje corrigeren in een werkend programma:

class ClassName:
def __init__ (self):
self.name=name
name=input(‘geef je naam in’)

naam= ClassName
print naam


Alvast bedankt,
Marc Stevens.

_______________________________________________
Python-nl mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/python-nl
Reply | Threaded
Open this post in threaded view
|

Re: Classes, sef en input

Reinoud van Leeuwen
Er gaan hier een paar dingen fout:

On 2 Jul 2018, at 21:45, Marc Stevens <[hidden email]> wrote:

Geachte Heer/Mevrouw,



Ik heb heel internet af ge-googled maar niet veel kunnen vinden over ‘self’ in combinatie met ‘input’.
Dat laatste ‘input’ wordt bijna niet behandeld.
Hoe zou U het volgende programmaatje corrigeren in een werkend programma:

class ClassName:
def __init__ (self):
self.name=name

Waar moet name op deze plek vandaan komen? Als het geen lokale variabele is zou het een argument van de functie __init__ moeten zijn

name=input(‘geef je naam in’)

naam= ClassName

hier mis ik een paar haakjes: naam=ClassName()
maar verder: de naam is iets dat *binnen* de class zit. Dus die wil je eruit halen

Dit is een werkende oplossing:

#!/usr/bin/env python

  

class ClassName:
    def __init__ (self):
        name = raw_input('geef je naam in')
        self.name = name

mijnclassvar = ClassName()
print mijnclassvar.name


Het kan allemaal nog een stuk mooier, maar dit is de essentie

Reinoud





_______________________________________________
Python-nl mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/python-nl

signature.asc (499 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Classes, sef en input

Guido Wesdorp-3
In reply to this post by Marc Stevens
Beste Marc,

Je hebt in jouw geval helemaal geen class nodig, in Python hoeft een programma geen class te zijn, je zou het volgende al in een bestandje kunnen zetten en uitvoeren:

print(input('geef je naam in: ')) 

De functie 'input' vraagt om user input, de functie 'print' voert die input vervolgens aan stdout (de console, zeg maar). Als je wilt, kun je de waarde ook eerst in een variabele opslaan:

name = input('geef je naam in: ')
print(name) 

Of er een functie van maken om het makkelijker meerdere keren aan te roepen:

def print_naam():
    name = input('geef je naam in: ') 
    print(name) 

print_naam() 

Pas als je meerdere functies hebt die ook nog data delen worden classes interessant. 

Groeten,

Guido


On Mon, 2 Jul 2018, 22:02 Marc Stevens, <[hidden email]> wrote:
Geachte Heer/Mevrouw,



Ik heb heel internet af ge-googled maar niet veel kunnen vinden over ‘self’ in combinatie met ‘input’.
Dat laatste ‘input’ wordt bijna niet behandeld.
Hoe zou U het volgende programmaatje corrigeren in een werkend programma:

class ClassName:
def __init__ (self):
self.name=name
name=input(‘geef je naam in’)

naam= ClassName
print naam


Alvast bedankt,
Marc Stevens.
_______________________________________________
Python-nl mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/python-nl

_______________________________________________
Python-nl mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/python-nl