找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 355|回复: 4

[求助] 父类和子类

7

主题

31

帖子

31

积分

贫民

积分
31
QQ
小鱼 发表于 2019-1-21 02:15:17 | 显示全部楼层 |阅读模式
  1. class Person(object):
  2.         def __init__(self,name,age):
  3.                 self.__name = name
  4.                 self.__age = age
  5.         def get_name(self):
  6.                 print(self.__name)
  7.         def get_age(self):
  8.                 print(self.__age)
  9. class Chinese(Person):
  10.         def __init__(self,name,age):
  11.                 Person.__init__(self,name,age)
  12.                 self.name = name
  13.                 self.age = age
  14.                 print(self.name,self.age)
  15. person = Person('xiao',20)
  16. person.get_name()
  17. person.get_age()
  18. chinese = Chinese('chinese',20)
  19. chinese.get_name()
  20. chinese.get_age()
复制代码

这么说父类的get_name()f方法访问的是self.__name,那么子类继承后,子类的get_name()方法访问的是self.name,   这只是简单的覆盖吗
回复

使用道具 举报

7

主题

31

帖子

31

积分

贫民

积分
31
QQ
小鱼  楼主| 发表于 2019-1-21 16:10:28 | 显示全部楼层
uitb 发表于 2019-1-21 13:38
你怎么就推测出子类调的self.name?
试试这样做看?

thank  you  sir
回复 支持 0 反对 1

使用道具 举报

3

主题

275

帖子

275

积分

侠客

积分
275

热心会员

uitb 发表于 2019-1-21 13:38:04 | 显示全部楼层
小鱼 发表于 2019-1-21 12:14
自顶  我想问的是:调用父类的get_name(),其实是调用了self.__name,那么为什么到了子类里就是self.name了呢 ...

你怎么就推测出子类调的self.name?
试试这样做看?
  1. class Person(object):
  2.         def __init__(self,name,age):
  3.                 self.__name = name
  4.                 self.__age = age
  5.         def get_name(self):
  6.                 print(self.__name)
  7.         def get_age(self):
  8.                 print(self.__age)
  9. class Chinese(Person):
  10.         def __init__(self,name,age):
  11.                 Person.__init__(self,name,age)
  12.                 self.name = 123
  13.                 self.age = 456
  14.                 print(self.name,self.age)
  15. person = Person('xiao',20)
  16. person.get_name()
  17. person.get_age()
  18. chinese = Chinese('chinese',20)
  19. chinese.get_name()
  20. chinese.get_age()
复制代码
回复 支持 1 反对 0

使用道具 举报

7

主题

31

帖子

31

积分

贫民

积分
31
QQ
小鱼  楼主| 发表于 2019-1-21 12:14:53 | 显示全部楼层
自顶  我想问的是:调用父类的get_name(),其实是调用了self.__name,那么为什么到了子类里就是self.name了呢
回复 支持 反对

使用道具 举报

0

主题

14

帖子

14

积分

贫民

积分
14
一叶落而知秋 发表于 2019-1-22 16:37:29 | 显示全部楼层
感觉你这段代码说明不了问题啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表