Python中的子函数

-1 投票
2 回答
3127 浏览
提问于 2025-04-18 05:38

我正在用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()

撰写回答