Python:字符串到函数名,它是如何工作的?
在pandas中,您可以通过Python:字符串到函数名,它是如何工作的?,python,python-3.x,Python,Python 3.x,在pandas中,您可以通过 #List unique values in the df['name'] column df.name.unique() Python如何将函数名转换为字符串参数“name” 数据帧覆盖以连接到属性解析。这允许从df.anything返回任意对象。实例在self.\u internal\u names\u set中维护“真实”属性名称的内部列表,并在self.\u info\u axis中维护列名列表 def __getattr__(self, name):
#List unique values in the df['name'] column
df.name.unique()
Python如何将函数名转换为字符串参数“name” 数据帧覆盖以连接到属性解析。这允许从df.anything
返回任意对象。实例在self.\u internal\u names\u set
中维护“真实”属性名称的内部列表,并在self.\u info\u axis
中维护列名列表
def __getattr__(self, name):
"""After regular attribute access, try looking up the name
This allows simpler access to columns for interactive use.
"""
# Note: obj.x will always call obj.__getattribute__('x') prior to
# calling obj.__getattr__('x').
if (name in self._internal_names_set or name in self._metadata or
name in self._accessors):
return object.__getattribute__(self, name)
else:
if name in self._info_axis:
return self[name]
return object.__getattribute__(self, name)
消息来源是 它不是一个函数名,而是一个对象属性。有多种方法可以做到这一点。你是在特别问熊猫吗?@Barmar什么让你认为这是一个财产?属性是用描述符实现的:如果它是一个属性,那么将解析
DataFrame.name
。@wim我的观点是它像属性一样使用,而不是函数,它不是df.name()
。啊,那么在这个上下文中正确使用的术语应该是“attribute”。属性有特定的含义。谢谢,维姆。你在评论中提到有多种方法可以做到这一点。还有其他的方法吗?我要求的是任何python类,而不是特定于pandas的类。还有一个类,它有第一个DIB,但可能很难正确实现。然而,在属性访问中更常见和流行的“拥有点”的方法是使用描述符。仔细阅读文档中的内容。