我有以下Python代码,来自www.testandtrack.io上的一个问题:
class Sales:
def __init__(self,id):
self.id=id
id=321
val=Sales(123)
print(val.id)
这里的输出是:123
我希望能够显示对象id的值,但它是最初在类中定义的,例如在本例中为'321'。我还想了解如何在需要时重写(如图所示),但在需要时保留类默认属性。
我已经尝试在实例化时将其留空,但需要一个位置参数。
val=Sales()
我也试过从下面的'构造函数'中删除id,但这也不起作用:
def __init__(self):
谁能给我指个方向,给我解释一下吗?我希望在默认情况下,每个对象都继承类的id(或任何指定的属性),而不必在创建时显式定义值。当需要时,对于某些属性,我希望为对象提供新值,尽管这些值是在类中定义的。(覆盖)考虑到321
是在没有传递id的情况下的默认值,您应该这样做
class Sales:
def __init__(self, id=321):
self.id=id
val = Sales(123)
print(val.id)
val2 = Sales()
print(val2.id)
class Sales:
def __init__(self,id):
self.id=id
self.id=321
val=Sales(123)
print(val.id)
输出为321
要编辑Sales的id,必须输入self。之前。Python对它很严格
好的,对不起,我没有理解你的问题。
这是你想做的事情的一种方法:
class Sales:
def __init__(self):
pass
def set_id(self,id):
self.id=id
val=Sales()
val.set_id(100)
print(val.id)
答案是100
class Sales:
def __init__(self):
pass
def set_id(self,id):
self.id=id
val=Sales()
val.set_id(100)
val.set_id(200)
print(val.id)
这个是200