У меня есть класс с пользовательским getter, поэтому у меня есть ситуации, когда мне нужно использовать мой пользовательский getter и ситуации, когда мне нужно использовать default.Как узнать, какой следующий атрибут запрашивается в python
Так что подумайте о нижеследующем.
Если я вызываю метод объекта с таким образом:
c.somePyClassProp
В этом случае мне нужно позвонить пользовательский поглотитель, и добытчик будет возвращать INT значение, а не объект Python. Но если я называю метод по этому пути:
c.somePyClassProp.getAttributes()
В этом случае мне нужно использовать по умолчанию сеттера, и первый возврат должен быть объектом Python, а затем нам нужно вызвать метод GetAttributes возвращенного объекта питона (от c.somePyClassProp). Обратите внимание, что somePyClassProp на самом деле является свойством класса, который является другим экземпляром класса Python.
Итак, есть ли какой-либо способ в Python, на котором мы можем знать, будут ли вызываться какие-либо другие методы после вызова первого метода?
Единственный возможный способ сделать то, что вы хотите сделать 'c.somePyClassProp' возвращает объект, который сочетает в себе (часть или все) из двух интерфейсов, которые вы хотите. То есть, вам нужно, чтобы это было что-то похожее на 'int', но также имело метод getAttributes. Если вам это нужно, чтобы иметь возможность сделать что-то нетривиальное, это будет грязно и сложно. Вы уверены, что не можете использовать другой метод или имя свойства для разделения двух видов использования? – Blckknght
Ответ Kindall кажется лучшим, но только если вы в порядке с объектом, который ведет себя как int во всех контекстах ** кроме ** он также поддерживает метод getAttributes. –