[英]Python: How to inherit and display the id defined in the class, rather than have to define it in the object
我在www.testandtrack.io上的一个问题中有以下 Python 代码:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.