python - 你应该如何将参数传递给__init__?
问题描述
来自 C++ 背景,我对 Python 的变量使用,特别是类对象的创建有点困惑。考虑下面的代码:
class Cat(object):
"""My pet cat"""
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return "{0}, {1}".format(self.name, self.age)
class Age(object):
def __init__(self, a):
self.age = a
def __repr__(self):
return "{0}".format(self.age)
输出:
>>> name='milo'
>>> age =4
>>> m = Cat(name, age)
>>> print(m)
milo, 4
>>> age +=1
>>> print(m)
milo, 4
>>> name='rex'
>>> age =Age(4)
>>> rex = Cat(name, age)
>>> print(rex)
rex, 4
>>> age.age += 55
>>> print(rex)
rex, 59
由于某种原因rex
变老,并milo
保持 4 岁。因此,如果我制作另一只猫来代替旧猫:
>>> age.age -=55
>>> spike = Cat('spike', age )
>>> print(spike)
spike, 4
>>> print(rex)
rex, 4
两人spike
和rex
现在年龄相同。
我应该如何编码Cat
和Age
类,以免我不小心让老猫恢复活力?
为什么'Milo'在做的时候不会老一岁age +=1
?
解决方案
推荐阅读
- c - 需要反馈:信用 (Pset1- CS50x)
- java - 我有 4 个不同的 JLabels 和两个按钮,一个按钮应该将颜色向右更改为蓝色,另一个按钮将颜色更改回来
- ios - react-native-gesture-handler 在 ios 上不起作用
- api - 对象检测api,coco模型
- angular - 在另一个页面上捕获事件发射器的问题
- key - 关闭笔记本电脑的主键
- javascript - 我的方法和函数做同样的事情,但只有函数有效?
- docker - 我从 Windows 上的 docker hub 拉取的图像的位置在哪里?
- reactjs - Gatsby 在运行时替换静态查询数据
- javascript - React useImerativeHandle 不更新值