我是OOP的新手。我的想法是实现以下类:
class name(object, name):
def __init__(self, name):
print name
然后想法是创建该类的两个实例:
person1 = name("jean")
person2 = name("dean")
我知道,这是不可能的,但是如何将输入参数传递给类的实例呢?
答案 0 :(得分:15)
>>> class name(object):
... def __init__(self, name):
... self.name = name
...
>>> person1 = name("jean")
>>> person2 = name("dean")
>>> person1.name
'jean'
>>> person2.name
'dean'
>>>
这是你在找什么?
答案 1 :(得分:12)
您最初定义课程时遇到的问题是您已写完:
class name(object, name):
这意味着该类继承了名为" object"的基类,以及名为" name"的基类。但是,没有名为" name"的基类,因此它失败了。相反,您需要做的就是在特殊的 init 方法中使用变量,这意味着该类将其作为变量。
class name(object):
def __init__(self, name):
print name
如果要在类中定义的其他方法中使用该变量,可以将名称指定给self.name,并在类中的任何其他方法中使用该名称,而无需将其传递给方法。
例如:
class name(object):
def __init__(self, name):
self.name = name
def PrintName(self):
print self.name
a = name('bob')
a.PrintName()
bob
答案 2 :(得分:7)
您只需要使用正确的语法即可。让我给你一个我用Python交互式shell做的最小例子:
>>> class MyNameClass():
... def __init__(self, myname):
... print myname
...
>>> p1 = MyNameClass('John')
John
答案 3 :(得分:3)
从类声明中删除name
param。 init方法用于在创建时将参数传递给类。
class Person(object):
def __init__(self, name):
self.name = name
me = Person("TheLazyScripter")
print me.name
答案 4 :(得分:1)
class name:
def __init__(self, name):
self.name = name
print("name: "+name)
其他地方:
john = name("john")
输出:
name: john
答案 5 :(得分:1)
班 人员:
def init (自身,姓名,年龄,体重,性别,暴民编号,地点):
self.name = str(名称)
self.age = int(age)
self.weight = int(weight)
self.sex = str(sex)
self.mob_no = int(mob_no)
self.place = str(place)
document.querySelector('form').addEventListener('submit', function(e){
e.preventDefault();
let input = document.getElementById('task').value;
let tasks;
if(localStorage.getItem('tasks') === null) {
tasks = [];
} else {
tasks = JSON.parse(localStorage.getItem('tasks'));
}
tasks.push(input);
localStorage.setItem('tasks', JSON.stringify(tasks))
})
Unexpected token a in JSON at position 0 at JSON.parse
答案 6 :(得分:1)
怎么样?
class name(str):
def __init__(self, name):
print (name)
# ------
person1 = name("jean")
person2 = name("dean")
print('===')
print(person1)
print(person2)
输出:
jean
dean
===
jean
dean