Python类输入参数

时间:2016-06-15 14:00:51

标签: python oop

我是OOP的新手。我的想法是实现以下类:

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

然后想法是创建该类的两个实例:

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

我知道,这是不可能的,但是如何将输入参数传递给类的实例呢?

7 个答案:

答案 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)

Python Classes

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)

    
  

创建实例来分类Person

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