gpt4 book ai didi

python - 如何知道在 python 中请求的下一个属性

转载 作者:太空宇宙 更新时间:2023-11-04 07:42:06 25 4
gpt4 key购买 nike

我有自定义 getter 的类(class),所以我有需要使用自定义 getter 的情况,也有需要使用默认 getter 的情况。

所以考虑跟随。

如果我这样调用对象c的方法:

c.somePyClassProp

在这种情况下,我需要调用自定义 getter,getter 将返回 int 值,而不是 Python 对象。但是如果我以这种方式调用方法:

c.somePyClassProp.getAttributes()

在这种情况下,我需要使用默认 setter ,首先返回需要是 Python 对象,然后我们需要调用返回的 python 对象的 getAttributes 方法(来自 c.somePyClassProp)。请注意,somePyClassProp 实际上是类的属性,它是另一个 Python 类实例。

那么,Python 中有没有什么方法可以知道在第一个方法调用后是否还会调用其他方法?

最佳答案

没有。 c.someMethod 是一个独立的表达式;它的评估不会受到使用结果的环境的影响。如果有可能实现你想要的,这将是结果:

x = c.someMethod
c.someMethod.getAttributes() # Works!
x.getAttributes() # AttributeError!

这会让人很困惑。

不要试图使 c.someMethod 的行为根据将要执行的操作而有所不同,并且如果可能的话,不要使 c.someMethod 成为方法打电话。人们会期望 c.someMethod 返回一个绑定(bind)的方法对象,然后可以调用该对象来执行该方法;只需def以通常的方式定义方法并使用c.someMethod() 调用它。

关于python - 如何知道在 python 中请求的下一个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17891826/

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