2024-10-01 04:44:47 发布
网友
在此(测试)代码中:
class Test(object): def __init__(self,val): self.val=val def returnVal(self): return(self.val) dict = {} dict["Tom"] = Test(20)
如何让Tom使用“returnVal”功能。正如Tom.returnVal()所示,它似乎不起作用。(很抱歉,如果这是一个愚蠢的问题,这是我第一次使用字典处理对象
您可以使用键值从字典中选择元素,就像分配元素时一样
dict["Tom"].returnVal()
也许你应该把密码改一下
class Test(object): def __init__(self,val): self.val=val def returnVal(self): return self.val # return not only print dict = {} dict["Tom"] = Test(20)
Tom不是一个对象,它是dict的一个键。所以你应该这样编码:
实际上,在你的帖子中,你还可以学到一些与之相关的东西
首先,由于Python3.x,您不需要从object对类进行子类化。它是自动的。见this thread here(包括一些相关评论)
object
因此,您可能可以:
class Test: def __init__(self,value): self.value = value def value(self): return self.value
如果你真的想要方法^ {< CD2>},可以考虑。在Python中,如果您只需要读取属性值(无需额外处理、无需访问控制、无需任何操作),则无需使用getter方法。直接从实例访问属性将执行以下操作:
obj = Test(42) value = obj.value
此外,Python中方法和函数的命名样式应为snake_case,类名称应为CamelCase。有关其他样式,请参见PEP8
snake_case
CamelCase
更重要的是,不要指定内置名称,例如dict或list:
dict
list
# do not do this dict = {} dict["Tom"] = Test(20)
要查看应避免使用的其他名称,请在Python shell中执行以下操作:
>>> import builtins >>> dir(builtins)
这是因为替换了内置定义,在以后的代码中会感到困惑。在上面的代码中dict是从现在开始在一个特定的dictionary实例对象上,使用dict()创建一个新的dictionary将失败
dict()
也许您只是想创建一个具有
tom = Test(20) print(tom.value)
或将测试对象(或任何类型的对象)存储在dict中:
people = {} people["Tom"] = Test(20) print(people["Tom"].value) print("Tom" in people)
您可以使用键值从字典中选择元素,就像分配元素时一样
dict["Tom"].returnVal()
也许你应该把密码改一下
Tom不是一个对象,它是dict的一个键。所以你应该这样编码:
实际上,在你的帖子中,你还可以学到一些与之相关的东西
首先,由于Python3.x,您不需要从
object
对类进行子类化。它是自动的。见this thread here(包括一些相关评论)因此,您可能可以:
如果你真的想要方法^ {< CD2>},可以考虑。在Python中,如果您只需要读取属性值(无需额外处理、无需访问控制、无需任何操作),则无需使用getter方法。直接从实例访问属性将执行以下操作:
此外,Python中方法和函数的命名样式应为
snake_case
,类名称应为CamelCase
。有关其他样式,请参见PEP8更重要的是,不要指定内置名称,例如
dict
或list
:要查看应避免使用的其他名称,请在Python shell中执行以下操作:
这是因为替换了内置定义,在以后的代码中会感到困惑。在上面的代码中
dict
是从现在开始在一个特定的dictionary实例对象上,使用dict()
创建一个新的dictionary将失败也许您只是想创建一个具有
或将测试对象(或任何类型的对象)存储在dict中:
相关问题 更多 >
编程相关推荐