如何通过名称区分python中的方法和属性

kev*_*kev 6 python

有时,我发现很难通过它的名字来区分方法和属性而不附加括号.

例如:类中
keys()方法和text属性xml.etree.ElementTree.Element.

text:text属性可用于保存与元素关联的其他数据.

keys():将元素属性名称作为列表返回.


是否有一些制定text属性的基本规则/约定,但是keys()方法?

如果我创建text()一个方法和keys一个属性.它似乎还可以.

Dan*_*olo 6

唯一真正的区别是一个是可调用的而一个是不可调用的,所以你可以将内置函数callable()与实际对象(不是具有其名称的字符串)一起使用来确定它是否可调用.

在你的情况下:

>>> from xml.etree import ElementTree
>>> elt = ElementTree.Element("")
>>> callable(elt.keys)
True
>>> callable(elt.text)
False
Run Code Online (Sandbox Code Playgroud)