这种方法可以实现对实例对象的重复调用的原理是,在每次迭代开始前,通过 `__iter__` 方法将迭代器的状 ...
请问:
class Person:
def __init__(self):
self.name = 'Tom'
self.age = 20
def get_attr(self):
print('我的名字叫:%s,今年%s岁'%(self.name,self.age))
tom = Person()
tom.get_attr()
print('-'*60)
class Zerson:
def __init__(self,name='Tom',age=20):
self.name = name
self.age = age
def get_attr(self):
print('我的名字叫:%s,今年%s岁'%(self.name,self.age))
zom = Zerson()
zom.get_attr()
这两种写法有什么区别或者不同吗 15779327169 发表于 2024-04-18 16:46
请问:
class Person:
def __init__(self):
...
这两种写法在功能上是相同的,都定义了一个类 `Person` 和 `Zerson`,并在初始化方法 `__init__` 中设置了属性 `name` 和 `age`,以及定义了一个方法 `get_attr` 来输出对象的属性。所以从功能角度来看,它们是一样的。
不同之处在于初始化方法 `__init__` 的参数设置上。在第一种写法中,初始化方法没有任何参数,属性的默认值是固定的,即 `self.name = 'Tom'` 和 `self.age = 20`。而在第二种写法中,初始化方法有两个可选参数 `name='Tom'` 和 `age=20`,属性的默认值可以通过传入参数进行自定义。
因此,使用第一种写法时,创建对象实例后的属性值是固定的;而使用第二种写法时,可以根据需要在创建对象实例时传入不同的参数来自定义属性值。例如:
zom = Zerson('Jerry', 25)
zom.get_attr()# 输出结果为:我的名字叫:Jerry,今年25岁
总结来说,第一种写法适用于属性值不需要变动的情况,第二种写法适用于属性值需要可变的情况。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2024-4-18 16:47
这两种写法在功能上是相同的,都定义了一个类 `Person` 和 `Zerson`,并在初始化方法 `__init__` 中设 ...
明白了,我还有一个问题。
class Person:
def __init__(self,name='Tom',age=20):
self.name = name
self.age = age
def get_attr(self):
print('我的名字叫:%s,今年%s岁'%(self.name,self.age))
person = Person()
person.get_attr()
class zerson:
def __init__(self,name='Tom',age=20):
return self
def get_attr(self,name='Tom',age=20):
self.name = name
self.age = age
print('我的名字叫:%s,今年%s岁'%(self.name,self.age))
zom = Person()
zom.get_attr()
请问在__init__里传入形参和在get_attr里传入形参有什么不同吗? 15779327169 发表于 2024-04-18 17:26
明白了,我还有一个问题。
class Person:
def ...
在 `__init__` 方法中传入形参和在 `get_attr` 方法中传入形参的主要区别在于它们的作用和使用方式。
- `__init__` 方法:这是一个特殊的方法,用于初始化对象的属性。通过在 `__init__` 方法中传入形参,可以在创建对象实例时给属性赋予初始值。这里的形参可以设置默认值,也可以根据需要在创建对象实例时传入不同的参数来自定义属性值。在创建对象实例时会自动调用 `__init__` 方法来初始化属性。
- `get_attr` 方法:这个方法用于获取对象的属性值并进行输出等操作。通过在 `get_attr` 方法中传入形参,可以在调用方法时传入参数,用于临时修改或定制输出结果。这里的形参将会覆盖对象的实例属性,但只在方法内部生效,不会修改对象的实例属性。
举个例子来说明:
person = Person('Jerry', 25)
person.get_attr()# 输出结果为:我的名字叫:Jerry,今年25岁
zom = zerson()
zom.get_attr('Jerry', 25)# 输出结果为:我的名字叫:Jerry,今年25岁
在上面的例子中,`__init__` 方法中的形参用于在创建对象实例时自定义属性值,而 `get_attr` 方法中的形参用于临时修改输出结果。
总结来说,`__init__` 方法的形参用于初始化对象的属性,而 `get_attr` 方法的形参用于临时修改输出结果。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
1
[2]