gpt4 book ai didi

python 2.7 定义一个类,如果不带参数调用将显示其属性

转载 作者:行者123 更新时间:2023-11-28 22:51:07 25 4
gpt4 key购买 nike

我有这样一个类:

class DATA:
# class for the data
def __init__(self, filename):
f_in = open(input_file, 'r')
data = json.load(f_in)
f_in.close()
# organizational data
self.T = data['temperature']
self.appVersion = data['appVersion']

我可以创建类的对象:

D = DATA(filename)

我可以访问属性

D.T

该类将有很多属性,我很快就会忘记它们的名字...我需要的是如果我单独调用 D 时有一个带有一些有用信息的提示。

例如:

>>>D
The attributes of D are:
- T (X)
- appVersion (Y)

其中XY是对应的值。

是否有构建方法来实现这一点?或者任何其他(更好)的方法?

谢谢。

最佳答案

如果你想要那种精确的功能,当你输入时你会得到什么

>>> D

return DATA.__repr__(D) 的值:

class D(object):
def __init__(self, ...):
...
def __repr__(self):
s = "The attributes of D are:\n- T ({0.T})\n- appVersion ('{0.appVersion}')"
return s.format(self)

示例用法(覆盖 __init__ 以直接获取 data):

>>> D = DATA({'temperature': 102, 'appVersion': '1.0.4'})
>>> D
The attributes of D are:
- T (102)
- appVersion ('1.0.4')

但是,您应该注意,这是对 __repr__ 的滥用是为了;来自 the documentation :

If at all possible, [__repr__] should look like a valid Python expression that could be used to recreate an object with the same value (given an appropriate environment). If this is not possible, a string of the form <...some useful description...> should be returned.

因此,其他答案更像 Pythonic。

关于python 2.7 定义一个类,如果不带参数调用将显示其属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22018940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com