例如你说的例子中,bark传入的参数一定要包含init的第一个参数this吗
时间: 2024-03-05 13:50:35 浏览: 18
在上面的例子中,`bark` 方法的定义中,第一个参数使用的是 `this`,这是因为在 `__init__` 方法中我们使用了 `this` 作为第一个参数,这样做是合法的,可以正常运行。
实际上,如果我们在 `__init__` 方法中使用了其他名称,那么在定义其他方法时也需要使用相同的名称。例如,如果在 `__init__` 方法中使用了 `obj` 作为第一个参数,那么在定义其他方法时也需要使用 `obj`。
下面是一个使用 `obj` 作为第一个参数的例子:
```python
class Cat:
def __init__(obj, name, color):
obj.name = name
obj.color = color
def meow(obj):
print(obj.name, "is meowing.")
cat1 = Cat("Lucy", "white")
cat1.meow() # 输出:Lucy is meowing.
```
在上面的例子中,我们定义了一个 `Cat` 类,它有两个属性 `name` 和 `color`,在实例化对象时,我们通过 `__init__` 方法对这两个属性进行了初始化。在 `__init__` 方法中,我们使用了 `obj` 作为第一个参数。
另外,我们还定义了一个 `meow` 方法,用于让猫叫。在 `meow` 方法中,我们同样使用了 `obj` 作为第一个参数。在调用 `meow` 方法时,我们同样可以使用 `cat1.meow()` 来调用,因为 `obj` 代表的也是对象本身。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)