繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM