我是OOP的新手.我的想法是实现以下类:
class name(object, name):
def __init__(self, name):
print name
Run Code Online (Sandbox Code Playgroud)
然后想法是创建该类的两个实例:
person1 = name("jean")
person2 = name("dean")
Run Code Online (Sandbox Code Playgroud)
我知道,这是不可能的,但是如何将输入参数传递给类的实例?
joe*_*ick 22
>>> class name(object):
... def __init__(self, name):
... self.name = name
...
>>> person1 = name("jean")
>>> person2 = name("dean")
>>> person1.name
'jean'
>>> person2.name
'dean'
>>>
Run Code Online (Sandbox Code Playgroud)
这是你想要的?
Abr*_*amB 19
你最初定义这个类的问题是你写的:
class name(object, name):
Run Code Online (Sandbox Code Playgroud)
这意味着该类继承了名为"object"的基类,以及名为"name"的基类.但是,没有名为"name"的基类,因此它失败了.相反,您需要做的就是在特殊的init方法中使用变量,这意味着类将其作为变量.
class name(object):
def __init__(self, name):
print name
Run Code Online (Sandbox Code Playgroud)
如果要在类中定义的其他方法中使用该变量,可以将名称指定给self.name,并在类中的任何其他方法中使用该名称,而无需将其传递给方法.
例如:
class name(object):
def __init__(self, name):
self.name = name
def PrintName(self):
print self.name
a = name('bob')
a.PrintName()
bob
Run Code Online (Sandbox Code Playgroud)
你只需要用正确的语法来完成它.让我给你一个我用Python交互式shell做的最小例子:
>>> class MyNameClass():
... def __init__(self, myname):
... print myname
...
>>> p1 = MyNameClass('John')
John
Run Code Online (Sandbox Code Playgroud)
name从类声明中删除参数。init 方法用于在创建时将参数传递给类。
class Person(object):
def __init__(self, name):
self.name = name
me = Person("TheLazyScripter")
print me.name
Run Code Online (Sandbox Code Playgroud)