Python 类中的参数
在一个类里,我需要完全理解在用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__
方法只需要三个参数,但你只需要自己提供其中的两个。