Joe McDonnell has posted comments on this change. (
http://gerrit.cloudera.org:8080/18125 )
Change subject: IMPALA-11070: Create TestSection class.
......................................................................
Patch Set 4:
> I still think a custom class is actually cleaner overall, but I'm
> going to look into a different solution. Hold off on further
> comment, since I may end up abandoning this review.
One short path to implementing the dictionary interface is to subclass UserDict:
from UserDict import UserDict
class joetest(UserDict):
def __init__(self, test_key, test_value):
UserDict.__init__(self)
# self.data is the underlying dictionary. Putting things in there makes
them available.
self.data[test_key] = test_value
self.data["EXAMPLE_{0}".format(test_key)] = test_value
j = joetest("foo", "bar")
print(j["foo"])
print(j.keys())
print("EXAMPLE_foo" in j)
print("not_exist" in j)
The actual interface functions are the container interfaces:
https://docs.python.org/3/reference/datamodel.html?emulating-container-types#emulating-container-types
There are a variety of ways of doing these things. You can also subclass dict
and there are a bunch of different container classes.
My main thought is that it is hard to judge these things in abstract. If there
is some detail you want to provide about the use case you have in mind, then I
may end up agreeing that a class is the way to do things.
--
To view, visit http://gerrit.cloudera.org:8080/18125
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3fed7ef64ac263b49b5b6e4a237a296092e4dcb8
Gerrit-Change-Number: 18125
Gerrit-PatchSet: 4
Gerrit-Owner: Steve Carlin <[email protected]>
Gerrit-Reviewer: Impala Public Jenkins <[email protected]>
Gerrit-Reviewer: Joe McDonnell <[email protected]>
Gerrit-Reviewer: Steve Carlin <[email protected]>
Gerrit-Comment-Date: Thu, 13 Jan 2022 03:39:44 +0000
Gerrit-HasComments: No