【问题标题】:Python class input argumentPython 类输入参数
【发布时间】:2016-10-16 16:49:46
【问题描述】:

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

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

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

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

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

【问题讨论】:

标签: python oop


【解决方案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

【讨论】:

    【解决方案2】:

    人物

    def init(自我、姓名、年龄、体重、性别、mob_no、地点):

    self.name = str(name)
    self.age = int(年龄)
    self.weight = int(重量)
    self.sex = str(sex)
    self.mob_no = int(mob_no)
    self.place = str(place)

    为 Person 类创建实例

    p1 = Person(Muthuswamy,50,70,Male,94*****23,India)
    
    print(p1.name)
    
    print(p1.place)
    

    输出

    Muthuswamy
    
    India
    

    【讨论】:

      【解决方案3】:
      >>> class name(object):
      ...     def __init__(self, name):
      ...         self.name = name
      ... 
      >>> person1 = name("jean")
      >>> person2 = name("dean")
      >>> person1.name
      'jean'
      >>> person2.name
      'dean'
      >>>
      

      【讨论】:

        【解决方案4】:

        您只需要使用正确的语法即可。让我给你一个我刚刚用 Python 交互式 shell 做的最小示例:

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

        【讨论】:

          【解决方案5】:

          你最初定义类的问题是你写的:

          class name(object, name):
          

          这意味着该类继承了名为“object”的基类,以及名为“name”的基类。但是,没有名为“name”的基类,所以它失败了。相反,您需要做的就是在特殊的 init 方法中包含该变量,这意味着该类将其作为一个变量。

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

          如果您想在类中定义的其他方法中使用该变量,可以将 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
          

          【讨论】:

            【解决方案6】:

            Python Classes

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

            其他地方:

            john = name("john")

            输出:
            name: john

            【讨论】:

              【解决方案7】:

              从类声明中删除 name 参数。 init 方法用于在创建时将参数传递给类。

              class Person(object):
                def __init__(self, name):
                  self.name = name
              
              me = Person("TheLazyScripter")
              print me.name
              

              【讨论】:

                猜你喜欢
                • 2013-03-30
                • 2015-06-04
                • 2020-09-10
                • 2015-08-02
                • 1970-01-01
                • 2021-11-14
                • 1970-01-01
                • 2012-07-12
                • 1970-01-01
                相关资源
                最近更新 更多