如何在Python中将方法作为属性调用?
假设我有一个代表用户的类:如何在Python中将方法作为属性调用?,python,class,object,methods,properties,Python,Class,Object,Methods,Properties,假设我有一个代表用户的类: class User(object): def __init__(): self.first_name = 'Mr' self.last_name = 'Anderson' def name(): return self.first_name + ' ' + self.last_name 使用namehelper方法,我可以轻松获得全名: >>> u = User() >>
class User(object):
def __init__():
self.first_name = 'Mr'
self.last_name = 'Anderson'
def name():
return self.first_name + ' ' + self.last_name
使用name
helper方法,我可以轻松获得全名:
>>> u = User()
>>> u.first_name
'Mr'
>>> u.name()
'Mr Anderson'
但问题是,我不想将name
作为方法调用,而是作为属性调用。我有没有办法让它表现得像这样:
>>> u = User()
>>> u.name
'Mr Anderson'
你必须使用装饰器
class User(object):
def __init__():
self.first_name = 'Mr'
self.last_name = 'Anderson'
@property
def name():
return self.first_name + ' ' + self.last_name
如果您不熟悉,您必须知道这些函数或类包装有前置的方法或函数
因此,使用
@property
装饰器将函数包装到类中,并允许您将其作为类的任何属性进行操作。当我将此问题的标题粘贴到Google搜索中时,链接的副本是第一个结果。