相关疑难解决方法(0)

为什么在__new __()后总是调用__init __()?

我只是想简化我的一个类,并引入了一些与flyweight设计模式相同的功能.

但是,我有点困惑,为什么__init__总是被称为__new__.我没想到这个.任何人都可以告诉我为什么会这样,以及我如何能够实现这个功能呢?(除了将实施放入__new__感觉相当hacky之外.)

这是一个例子:

class A(object):
    _dict = dict()

    def __new__(cls):
        if 'key' in A._dict:
            print "EXISTS"
            return A._dict['key']
        else:
            print "NEW"
            return super(A, cls).__new__(cls)

    def __init__(self):
        print "INIT"
        A._dict['key'] = self
        print ""

a1 = A()
a2 = A()
a3 = A()
Run Code Online (Sandbox Code Playgroud)

输出:

NEW
INIT

EXISTS
INIT

EXISTS
INIT
Run Code Online (Sandbox Code Playgroud)

为什么?

python design-patterns class-design

525
推荐指数
14
解决办法
26万
查看次数

获取python函数内的参数名称列表

可能重复:
在python中获取方法参数名称

有没有一种简单的方法可以在python函数中获取参数名称列表?

例如:

def func(a,b,c):
    print magic_that_does_what_I_want()

>>> func()
['a','b','c']
Run Code Online (Sandbox Code Playgroud)

谢谢

python parameters

241
推荐指数
4
解决办法
24万
查看次数

Python列表函数参数名称

有没有办法获取一个函数需要的参数名称?

def foo(bar, buz):
    pass

magical_way(foo) == ["bar", "buz"]
Run Code Online (Sandbox Code Playgroud)

python arguments function

34
推荐指数
2
解决办法
4万
查看次数

如何在python中打印__init__函数参数?

我试图创建驻留在模块中的类名的字典,这些类的名称为其构造函数args。

构造函数args也应该是一个字典,无论定义在哪里,我都会在其中存储参数的默认值。

任何线索都将非常有帮助。提前致谢。

为了提供有关使用情况的详细信息,我想在这里做的是对所有图像中提到的类图像

我想获取例如的构造函数参数,请参考下

python-3.x

2
推荐指数
1
解决办法
2712
查看次数