webentwicklung-frage-antwort-db.com.de

Eingabeargument für die Python-Klasse

Ich bin neu bei OOP. Meine Idee war die folgende Klasse zu implementieren:

class name(object, name):
    def __init__(self, name):
        print name

Dann sollten zwei Instanzen dieser Klasse erstellt werden:

person1 = name("jean")
person2 = name("dean")

Ich weiß, das ist nicht möglich, aber wie kann ich ein Eingabe-Argument an eine Instanz einer Klasse übergeben?

5
lars111
>>> class name(object):
...     def __init__(self, name):
...         self.name = name
... 
>>> person1 = name("jean")
>>> person2 = name("dean")
>>> person1.name
'jean'
>>> person2.name
'dean'
>>>

Suchst du danach?

13
joel goldstick

Das Problem bei der anfänglichen Definition der Klasse besteht darin, dass Sie Folgendes geschrieben haben:

class name(object, name):

Dies bedeutet, dass die Klasse die Basisklasse "object" und die Basisklasse "name" erbt. Es gibt jedoch keine Basisklasse namens "Name", daher schlägt diese fehl. Stattdessen müssen Sie lediglich die Variable in der speziellen init -Methode haben, was bedeutet, dass die Klasse sie als Variable übernimmt.

class name(object):
  def __init__(self, name):
    print name

Wenn Sie die Variable in anderen Methoden verwenden möchten, die Sie in der Klasse definieren, können Sie self.name den Namen zuweisen und ihn in jeder anderen Methode in der Klasse verwenden, ohne ihn an die Methode übergeben zu müssen.

Zum Beispiel:

class name(object):
  def __init__(self, name):
    self.name = name
  def PrintName(self):
    print self.name

a = name('bob')
a.PrintName()
bob
8
AbrahamB

Sie müssen es nur in korrekter Syntax tun. Ich möchte Ihnen ein minimales Beispiel geben, das ich gerade mit der interaktiven Python-Shell ausgeführt habe:

>>> class MyNameClass():
...   def __init__(self, myname):
...       print myname
... 
>>> p1 = MyNameClass('John')
John
6
frlan

Entfernen Sie den Parameter name aus der Klassendeklaration. Die init-Methode wird verwendet, um bei der Erstellung Argumente an eine Klasse zu übergeben.

class Person(object):
  def __init__(self, name):
    self.name = name

me = Person("TheLazyScripter")
print me.name
3
TheLazyScripter

Python-Klassen

class name:
    def __init__(self, name):
        self.name = name
        print("name: "+name)

Irgendwo anders:

john = name("john")

Ausgabe:
name: john

1
dheiberg

Klasse Person:

def init (Selbst, Name, Alter, Gewicht, Geschlecht, Mobilnummer, Ort):

self.name = str (name)
self.age = int (Alter)
self.weight = int (Gewicht)
self.sex = str (sex)
self.mob_no = int (mob_no)
self.place = str (place)

Erstellen einer Instanz für die Klasse Person

p1 = Person(Muthuswamy,50,70,Male,94*****23,India)

print(p1.name)

print(p1.place)

Ausgabe

Muthuswamy

India
0
Venkzz_venki