【问题标题】:python pass object as argumentpython将对象作为参数传递
【发布时间】:2012-07-13 20:55:48
【问题描述】:

如何将对象作为参数传递给类方法,并在调用类方法时调用传递对象的方法?

说我有:

class myclass:
    def __init__(self):
        pass
    def myfunc(self, something):
        something.do()


anobject = blah.xyz()

another_obj = myclass()
another_obj.myfunc(anobject)

【问题讨论】:

  • 如果你不知道,一个类不需要有一个__init__ 方法。 def __init__(self): pass 是多余的。
  • @mgilson 我认为你应该说不需要而不是不需要。

标签: python oop object


【解决方案1】:

只要something 有一个.do 方法,它就应该像给定的那样工作(一旦你修正了你的缩进和声明的顺序)。你试过运行它吗?

这(或多或少)是很多标准函数的工作原理——例如,内置的len 函数就差不多了

def len(obj):
    return obj.__len__()

【讨论】:

    【解决方案2】:

    你想调用过去对象的哪个方法?

    顺便说一句,myfunc 是一个实例方法。

    【讨论】:

    • “通过”对象,而不是“过去”。
    【解决方案3】:
    class student :
     ID=0
     name=""
    
    def fun(s=student()):
      print (s.id)
      print (s.name)
    
    
    st=student()
    fun(st)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-28
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 2020-04-07
      • 2017-06-04
      相关资源
      最近更新 更多