Python 将字典传递给_init__
我正在用Python创建一个类,希望将一个字典作为参数传递给init,并将其复制到一个实例变量。大概是这样的:Python 将字典传递给_init__,python,dictionary,Python,Dictionary,我正在用Python创建一个类,希望将一个字典作为参数传递给init,并将其复制到一个实例变量。大概是这样的: class foo: def __init__(self, dictionary): self.copy = dictionary 但出于某种原因,它没有通过字典,也许只是它的类型?例如,当我尝试在init中打印(dictionary)时,它只打印“class'dict'”而不是实际的dictionary。不知道为什么会发生这种情况,我将非常感谢任何帮助 我
class foo:
def __init__(self, dictionary):
self.copy = dictionary
但出于某种原因,它没有通过字典,也许只是它的类型?例如,当我尝试在init中打印(dictionary)时,它只打印“class'dict'”而不是实际的dictionary。不知道为什么会发生这种情况,我将非常感谢任何帮助 我猜您没有在构造函数中给出dict实例:
class foo:
def __init__(self, dictionary):
self.copy = dictionary
print(dictionary)
>>> f=foo({})
{}
>>> f=foo({'key': 'value'})
{'key': 'value'}
>>> f=foo(dict)
<type 'dict'>
foo类:
定义初始化(self,字典):
self.copy=字典
印刷(字典)
>>>f=foo({})
{}
>>>f=foo({'key':'value'})
{'key':'value'}
>>>f=foo(dict)
对我来说很好
# foo.py
class Foo(object):
def __init__(self, dictionary):
self.copy = dictionary
print dictionary
dict_object = Foo({"mykey": "myvalue"})
运行它:
$ python foo.py
{'mykey': 'myvalue'}
您可以添加一些使用类的上下文吗?打印是默认行为。查找pretty print:您没有向我们展示如何实例化您的类。顺便说一句,你不是在复制你的课程。您只需将name
self.copy
分配给传递给构造函数的同一个字典。对dictionary
的更改将传播到self.copy
self.copy=dictionary
仅存储引用。如果你真的想要一份拷贝,你必须执行self.copy=dictionary.copy()self.copy=dictionary
语句在这种情况下是无用的。