葫芦葫芦小胖 2022-07-01 14:43 采纳率: 75%
浏览 11
已结题

python类 调用的问题

问题遇到的现象和发生背景

两个调用的结果不一样 但是感觉应该是一样的

问题相关代码,请勿粘贴截图

class User():
def init(self, first_name, last_name, age, sex):
self.first_name = first_name
self.last_name = last_name
self.age = age
self.sex = sex
self.login_attempts = 0

def describe_user(self):
    print(f"{self.first_name}{self.last_name},{self.sex},{self.age}years old.")

def hello_1(self):
    print(f"hello , {self.first_name}{self.last_name}")

def increment_login_attempts(self):
    self.login_attempts += 2

def resst_login_attempts(self):
    self.login_attempts = 0

class Privileges():
def init(self):
self.privileges = ['can add post', 'can delete post', 'can ban user']
def privi(self):
print(self.privileges)
class Admin(User):
def init(self, first_name, last_name, age, sex):
super().init(first_name, last_name, age, sex)
# self.privileges = ['can add post' ,'can delete post','can ban user']
self.pri = Privileges()
def show_adminqs(self):
print(self.pri)
a = Admin('xiao', 'pangzi', 11, 'hulu')
a.pri.privi()
a.show_adminqs()

运行结果及报错内容

['can add post', 'can delete post', 'can ban user']
<__main__.Privileges object at 0x000001F3C09F7BB0>
最后两个调用感觉应该是一样的结果

我的解答思路和尝试过的方法

a.pri.privi()
a.show_adminqs()()
改成上面这样的话
运行结果就变成下面这样
Traceback (most recent call last):
File "E:\pythonProject\用户.py", line 36, in
a.show_adminqs()()
TypeError: 'NoneType' object is not callable
['can add post', 'can delete post', 'can ban user']
<__main__.Privileges object at 0x000001C6458B7B%B0>

我想要达到的结果

想知道为什么会这样

  • 写回答

1条回答 默认 最新

  • 於黾 2022-07-01 14:50
    关注

    pri是个Privileges类型的对象
    你打印self.pri,打印的是Privileges类型
    而print(self.privileges),打印的是Privileges类里的privileges属性
    你这差着一层呢,怎么能一样呢
    想一样,你应该打印self.pri.privileges呀

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 7月9日
  • 已采纳回答 7月1日
  • 创建了问题 7月1日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么