Python 类中的参数

0 投票
3 回答
4866 浏览
提问于 2025-05-01 03:54

在一个类里,我需要完全理解在用Python编程时的参数和给定的内容,请用下面的例子或者其他更复杂的例子来说明。

class Beacon(object):

    def __init__(self, name, description):
        self.name = name
        self.description = description
        self.paths = {}

    def go(self, direction):
        return self.paths.get(direction)

    def add_paths(self, paths): 
        self.paths.update(paths)

我可能会尝试通过去掉描述来制造一个错误

def __init__(self, name):

然后运行一个测试,结果我得到的是TypeError: init() takes exactly 2 arguments (3 given),我想知道这里的参数和给定的内容分别是什么。

暂无标签

3 个回答

-1

在你的代码中,init函数的参数有: - self - name - description

当你把description这个参数去掉时,就会出现错误,因为init函数想要根据description这个参数来创建一个叫做self.description的属性。

0

在这个上下文中,"self"是一个必须要有的参数,它代表了类的实例,也就是你创建的对象。虽然它是必须的,但在调用的时候是自动传入的。第一个参数是“name”,第二个是“description”,依此类推。

1

要创建一个 Beacon 类的对象,你需要提供两个东西:name(名字)和 description(描述)。而 self 是用来代表你正在创建的这个对象的,实际上这个过程是自动完成的,你不需要自己去做,Python 会帮你处理好。

举个例子:

class Person:
     def __init__(self, name, age):
         self.name = name
         self.age = age

如果你想创建一个 Person 类的对象:

jack = Person("Jack", 33)

在这里,我们把字符串 "Jack" 作为 name 传入,把数字 33 作为 age 传入。你会发现我们并没有传入任何 self 的参数。其实 self 会自动接收 jack(这个变量的名字)作为参数,所以你不需要担心这个问题。__init__ 方法只需要三个参数,但你只需要自己提供其中的两个。

撰写回答