Python 如何在指定类时引用类蓝图作为函数中的参数';论据?

Python 如何在指定类时引用类蓝图作为函数中的参数';论据?,python,python-3.x,parameter-passing,Python,Python 3.x,Parameter Passing,以下是设置 class SomeClass(): def __init__(self): pass def some_func1(self, paramA): some_input = paramA print(some_input) class SomeOtherClass(): def __init__(self, param1, param2): self.param1 = param1

以下是设置

class SomeClass():
    def __init__(self):
        pass

    def some_func1(self, paramA):
        some_input = paramA
        print(some_input)

class SomeOtherClass():
    def __init__(self, param1, param2):
        self.param1 = param1
        self.param2 = param2

obj = SomeClass()

# Scenario #1
some_var = obj.some_func1(paramA=SomeOtherClass)
# <class '__main__.SomeOtherClass'>

# Scenario #2
some_other_var = obj.some_func1(paramA=SomeOtherClass(param1='val1', param2='val2'))
# <__main__.SomeOtherClass object at 0x000002576E88FD60>
class SomeClass():
定义初始化(自):
通过
定义一些函数1(self,paramA):
某些输入=参数
打印(某些输入)
类SomeOtherClass():
定义初始化(self,param1,param2):
self.param1=param1
self.param2=param2
obj=SomeClass()
#情景1
some_var=obj.some_func1(paramA=SomeOtherClass)
# 
#情景2
some_other_var=obj.some_func1(paramA=SomeOtherClass(param1='val1',param2='val2'))
# 
问题是在我的实际示例中,这两种配置都不起作用。在场景1中,
SomeOtherClass
somefunc1
paramA
参数引用。在场景2中,指定了实例化
SomeOtherClass
所需的参数,但问题是我不想在参数级别实例化它


如何引用(而不是实例化)具有指定参数值的
SomeOtherClass
,作为函数参数的值?

延迟某项计算(包括对象实例化)的简单方法是将其包装在
lambda
中:

class SomeClass():
    def some_func1(self, thunk):
        """thunk: a callable that takes no args and constructs an object."""
        print(thunk)
        obj = thunk()  # this actually instantiates the object
        print(obj)


class SomeOtherClass():
    def __init__(self, param1, param2):
        self.param1 = param1
        self.param2 = param2

obj = SomeClass()

some_var = obj.some_func1(lambda: SomeOtherClass('val1', 'val2'))
如果出于其他目的需要将类和参数作为不同的参数,可以执行以下操作:

def some_func1(self, obj_class, *params):
    print(obj_class, params)
    obj = obj_class(*params)
    print(obj)

some_func1(SomeOtherClass, 'val1', 'val2')

你希望它实际做什么?也就是说,一旦你得到了类和参数,如果不实际实例化对象,你想对它们做什么?我只想引用
SomeOtherClass
,并将其作为函数参数引用。我想稍后在
some_func1
中实例化它。也许只需传入一个创建对象的thunk(一个
lambda
表达式),然后呢?我会写一个答案来证明这一点。