tengke 发表于 2023-5-4 16:55:25

self name

本帖最后由 tengke 于 2023-5-4 16:56 编辑



见截图里面的nme 等于 正方形 这个是怎么打印出来的呢 ?

歌者文明清理员 发表于 2023-5-4 16:55:26

在代码中创建了一个 Square 类的对象 s,并将其初始化为边长为 5 的正方形。下一行代码打印了该正方形对象的名字属性 name,即 '正方形',这个属性是在 Shape 类的构造函数中初始化的。

所以最终输出结果是:

>>> s.name
'正方形'

tengke 发表于 2023-5-4 17:19:11

歌者文明清理员 发表于 2023-5-4 17:04
在代码中创建了一个 Square 类的对象 s,并将其初始化为边长为 5 的正方形。下一行代码打印了该正方形对象 ...

那为什么我在square 类里面没有查看到对应的name属性呢

歌者文明清理员 发表于 2023-5-4 17:21:39

tengke 发表于 2023-5-4 17:19
那为什么我在square 类里面没有查看到对应的name属性呢

Square.name?
这是创建出来的 Square 类的实例,也就是真的三角形,的属性,跟Square没关系,SQuare只是规定了每个三角形该咋样,而没规定name
或许你可以这么写?class Square:
    name = "默认的Name,可以通过类访问"
    def __init__(self, name, ...):
      ...
      self.name = name #定义实例的name

tengke 发表于 2023-5-4 17:55:33

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

那么我想打印出来 zfx 这个字段 我应该怎么操作呢

tengke 发表于 2023-5-4 17:58:01

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)
print(ss.name)

歌者文明清理员 发表于 2023-5-4 18:05:36

tengke 发表于 2023-5-4 17:55
class A:
    def __init__(self,name):
      self.name=name


print(B('你的zf').name)
因为name是A的,super()是A
页: [1]
查看完整版本: self name