Python:如何继承和显示类中定义的id,而不是必须在对象中定义它



我有以下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