鱼C论坛

 找回密码
 立即注册
查看: 2957|回复: 8

[已解决]类里面的函数调用问题求助

[复制链接]
发表于 2023-2-13 16:22:42 | 显示全部楼层 |阅读模式

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

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

x
class Task:
    image_window_list = []
    def setId(self,Id):
        self.Id = Id

    def setNoDownlink(self,NoDownlink):
        self.setNoDownlink = NoDownlink

    def setTaskRequest(self,task_request):
        self.setTaskRequest = task_request

    def setTaskProperty(self,task_property):
        self.setTaskProperty = task_property

    def setTarget(self,task_target):
        self.setTarget = task_target

    def getImageWindowList(self,window):
        self.getImageWindowList = Task.image_window_list.append(window)
   
a = Task()
window1 = 1
window2 = 2
print(type(window1))
print(type(window2))
a.getImageWindowList(window1)
a.getImageWindowList(window2)
print(a.image_window_list)



求问大佬,为啥a.getImageWindowList(window2)这一行会报TypeError: 'NoneType' object is not callable这个错误?
最佳答案
2023-2-13 16:28:15
  1. class Task:
  2.     image_window_list = []
  3.     def setId(self,Id):
  4.         self.Id = Id

  5.     def setNoDownlink(self,NoDownlink):
  6.         self.setNoDownlink = NoDownlink

  7.     def setTaskRequest(self,task_request):
  8.         self.setTaskRequest = task_request

  9.     def setTaskProperty(self,task_property):
  10.         self.setTaskProperty = task_property

  11.     def setTarget(self,task_target):
  12.         self.setTarget = task_target

  13.     def getImageWindowList(self,window):
  14.         Task.image_window_list.append(window)                      # 这一行代码,你把 getImageWindowList 方法重新赋值了,而 append 的返回值是 None
  15.    
  16. a = Task()
  17. window1 = 1
  18. window2 = 2
  19. print(type(window1))
  20. print(type(window2))
  21. a.getImageWindowList(window1)
  22. a.getImageWindowList(window2)
  23. print(a.image_window_list)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-2-13 16:28:15 | 显示全部楼层    本楼为最佳答案   
  1. class Task:
  2.     image_window_list = []
  3.     def setId(self,Id):
  4.         self.Id = Id

  5.     def setNoDownlink(self,NoDownlink):
  6.         self.setNoDownlink = NoDownlink

  7.     def setTaskRequest(self,task_request):
  8.         self.setTaskRequest = task_request

  9.     def setTaskProperty(self,task_property):
  10.         self.setTaskProperty = task_property

  11.     def setTarget(self,task_target):
  12.         self.setTarget = task_target

  13.     def getImageWindowList(self,window):
  14.         Task.image_window_list.append(window)                      # 这一行代码,你把 getImageWindowList 方法重新赋值了,而 append 的返回值是 None
  15.    
  16. a = Task()
  17. window1 = 1
  18. window2 = 2
  19. print(type(window1))
  20. print(type(window2))
  21. a.getImageWindowList(window1)
  22. a.getImageWindowList(window2)
  23. print(a.image_window_list)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-13 17:18:06 | 显示全部楼层

那应该怎样把那个window2的值插进去呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-13 17:19:21 | 显示全部楼层
kking1 发表于 2023-2-13 17:18
那应该怎样把那个window2的值插进去呢?

我改的那个代码你有运行了吗?那个就已经把 windows2 的值插进去了呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-13 17:20:31 | 显示全部楼层

没重新赋值吧?只是把元素插入一个列表而已
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-13 17:22:06 | 显示全部楼层
isdkz 发表于 2023-2-13 17:19
我改的那个代码你有运行了吗?那个就已经把 windows2 的值插进去了呀

没看到你改的那个代码额
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-13 17:24:22 | 显示全部楼层
isdkz 发表于 2023-2-13 17:19
我改的那个代码你有运行了吗?那个就已经把 windows2 的值插进去了呀

哦,看到了,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-13 17:24:35 | 显示全部楼层
kking1 发表于 2023-2-13 17:22
没看到你改的那个代码额

  1. class Task:
  2.     image_window_list = []
  3.     def setId(self,Id):
  4.         self.Id = Id

  5.     def setNoDownlink(self,NoDownlink):
  6.         self.setNoDownlink = NoDownlink

  7.     def setTaskRequest(self,task_request):
  8.         self.setTaskRequest = task_request

  9.     def setTaskProperty(self,task_property):
  10.         self.setTaskProperty = task_property

  11.     def setTarget(self,task_target):
  12.         self.setTarget = task_target

  13.     def getImageWindowList(self,window):
  14.         Task.image_window_list.append(window)                      # 这一行代码,你把 getImageWindowList 方法重新赋值了,而 append 的返回值是 None
  15.    
  16. a = Task()
  17. window1 = 1
  18. window2 = 2
  19. print(type(window1))
  20. print(type(window2))
  21. a.getImageWindowList(window1)
  22. a.getImageWindowList(window2)
  23. print(a.image_window_list)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-13 17:25:33 | 显示全部楼层
kking1 发表于 2023-2-13 17:20
没重新赋值吧?只是把元素插入一个列表而已

因为那个是我改了后的呀

你看看你没改之前的:

self.getImageWindowList = Task.image_window_list.append(window)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-24 23:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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