张图南 发表于 2020-9-19 23:01:12

导入模块的类在继承时出了问题

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

父类所在模块名为single_user.py
class User():
    def __init__(self,first_name,last_name,message=''):
      self.first_name = first_name
      self.last_name = last_name
      self.message = message

子类:
from single_user import User

class Privileges():
    def __init__(self):
      self.privileges = ['can add post','can delete post','can ban user']
      
    def show_privileges(self):
      print(self.privileges)
      
class Admin(User):
    def __init__(self,first_name,last_name,message=''):
      
      super().__init__(first_name,last_name,message)
      self.privileges = Privileges()

tunan = Admin('zhang','tunan','I will carry you.')
#tunan.describe_user()
#tunan.greet_user()
tunan.privileges.show_privileges()

子类17,18行不加‘#’就会因为没法调用父类函数而报错,
我想知道怎样才能在把父类和子类放在不同模块的时候能让子类正确调用父类方法?

sunrise085 发表于 2020-9-19 23:11:05

就这样写应该是可以调用父类的函数的。
但是你的父类中有这个函数吗?是你没有贴全父类代码,还是父类没有这个函数?

张图南 发表于 2020-9-20 18:59:55

sunrise085 发表于 2020-9-19 23:11
就这样写应该是可以调用父类的函数的。
但是你的父类中有这个函数吗?是你没有贴全父类代码,还是父类没有 ...

我是憨憨{:10_262:},复制父类到一个模块的时候没复制全。
加上去就正常运行了
页: [1]
查看完整版本: 导入模块的类在继承时出了问题