鱼C论坛

 找回密码
 立即注册
查看: 1758|回复: 2

[已解决]导入模块的类在继承时出了问题

[复制链接]
发表于 2020-9-19 23:01:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我的想法是把父类(USER)独立放在一个模块中,
在子类最开头导入了父类所在的模块,
但是子类的实例对象没法调用父类的方法。

父类所在模块名为single_user.py
  1. class User():
  2.     def __init__(self,first_name,last_name,message=''):
  3.         self.first_name = first_name
  4.         self.last_name = last_name
  5.         self.message = message
复制代码


子类:
  1. from single_user import User

  2. class Privileges():
  3.     def __init__(self):
  4.         self.privileges = ['can add post','can delete post','can ban user']
  5.         
  6.     def show_privileges(self):
  7.         print(self.privileges)
  8.         
  9. class Admin(User):
  10.     def __init__(self,first_name,last_name,message=''):
  11.         
  12.         super().__init__(first_name,last_name,message)
  13.         self.privileges = Privileges()

  14. tunan = Admin('zhang','tunan','I will carry you.')
  15. #tunan.describe_user()
  16. #tunan.greet_user()
  17. tunan.privileges.show_privileges()
复制代码


子类17,18行不加‘#’就会因为没法调用父类函数而报错,
我想知道怎样才能在把父类和子类放在不同模块的时候能让子类正确调用父类方法?
最佳答案
2020-9-19 23:11:05
就这样写应该是可以调用父类的函数的。
但是你的父类中有这个函数吗?是你没有贴全父类代码,还是父类没有这个函数?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-9-19 23:11:05 | 显示全部楼层    本楼为最佳答案   
就这样写应该是可以调用父类的函数的。
但是你的父类中有这个函数吗?是你没有贴全父类代码,还是父类没有这个函数?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-9-20 18:59:55 | 显示全部楼层
sunrise085 发表于 2020-9-19 23:11
就这样写应该是可以调用父类的函数的。
但是你的父类中有这个函数吗?是你没有贴全父类代码,还是父类没有 ...

我是憨憨,复制父类到一个模块的时候没复制全。
加上去就正常运行了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-4 00:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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