Python中的子函数
我正在用Python写一个简单的程序。在这个程序里,有一个叫做abc的数组。这个数组里包含了以下数据:出生日期和名字。
我不想直接用abc[1]来获取名字,而是想创建一个子函数,比如:abc.name(),这样就能返回abc[1]的值。
我该怎么创建一个这样的函数(带点的)呢?谢谢!!
2 个回答
0
如前所述,你不能直接把这样的“函数”加到你的值上。如果你想使用点号(.)来访问这些函数,就必须先创建一个类的定义。下面是一个简单的例子:
class abc():
# constructor, initializing object state
def __init__(self,item):
self.item=item
# here you define name and body of your function
def name(self):
# return just second item from our "item" value (string, array, list, etc.)
return self.item[1]
现在,你可以创建这个abc类的对象,并调用它的“name函数”:
> myData=abc('123')
> myData.name()
'2'
> myData=abc(['birth','name'])
> myData.name()
'name'
1
你可以使用这样的一个类:
class abc():
def __init__(self, birthday, name):
self.__birthday = birthday
self.__name = name
def birthday(self):
return self.__birthday
def name(self):
return self.__name
现在只需要创建一个叫 abc 的对象
person = abc('5/04/1984', 'Nick Stone')
然后这样获取数据:
bday = person.birthday()
name = person.name()