tengke 发表于 2023-5-5 10:07:11

类中的默认值

class A:
    def __init__(self,name):
      self.name=name
class B(A):
    def __init__(self,zf):
      super().__init__("zfx")
      self.zf=zf
ss=B(2)
ssz=ss.name
print(ssz)


上面的代码可以打印出来 zfx这个字符串
那么如果我要显示传过去的 参数 2 怎么做

脑子 发表于 2023-5-5 10:07:12

先解释一下你的代码里发生了什么:

super() 可以调用父类A的方法, super().__init__("zfx")的意思是 调用A的__init__(), 传入 “zfx” , 子类因此有了父类的self参数name.
因此可以调用 ss.name得到 “zfx”. 而“zf”是在子类中定义的, 加上之前继承的参数, 子类有两个self参数, ss.name 和 ss.zf.

因此可以用ss.zf得到2

陈星钰 发表于 2023-5-5 11:22:09

参数‘2’这个值是赋值到了类‘B’里面的zf,类‘B’有了对象后,就可以直接通过对象访问
ss.zf      这样应该就可以了

isdkz 发表于 2023-5-5 11:27:20

要打印传递给子类B的参数 zf ,可以在 B 类中添加一个方法来获取 zf 的值,然后调用该方法并打印结果。下面是修改后的代码:

class A:
    def __init__(self, name):
      self.name = name

class B(A):
    def __init__(self, zf):
      super().__init__("zfx")
      self.zf = zf

    def get_zf(self):
      return self.zf

ss = B(2)
ssz = ss.name
print(ssz)

zf_value = ss.get_zf()
print(zf_value)


这样修改后,代码将首先打印 zfx 字符串,然后打印传递给子类B的参数 zf 的值,即2。
页: [1]
查看完整版本: 类中的默认值