Python Forum
AttributeError: 'MyPlayer' object has no attribute - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: General Coding Help (https://python-forum.io/forum-8.html)
+--- Thread: AttributeError: 'MyPlayer' object has no attribute (/thread-9520.html)



AttributeError: 'MyPlayer' object has no attribute - chris0147 - Apr-14-2018

Hi all,

I need some help with my current code as I have got a trouble with calling a function from another python file.

When I try this:

def UpdateEPG(self):
    self.get_programme_button_width()
It will give me an error: AttributeError: 'MyPlayer' object has no attribute 'get_programme_button_width'.


Here is the code for player.py

import test

class MyPlayer(xbmcgui.WindowXML):
    def UpdateEPG(self):
        self.get_programme_button_width()
Here is the code for test.py:

from player import MyPlayer

class MyClass(xbmcgui.WindowXML):
    def get_programme_button_width(self):
        program_width = ''.join(str(x) for x in self.prog_width_list)

        #create width size for program buttons
        if program_width == 0:
           program_width = 344
        elif program_width == 57:
           program_width = 59
        elif program_width == 79:
           program_width = 59
        elif program_width == 114:
I have got no idea how to call the function from the test.py even I have tried test.MyClass.get_programme_button_width() but I got another error: TypeError: unbound method get_programme_button_width() must be called with MyClass instance as first argument (got nothing instead). I have got no idea how to fix it.

Do you know how I can call the function get_programme_button_width from the test.py file when I am running the code in player.py??


RE: AttributeError: 'MyPlayer' object has no attribute - Larz60+ - Apr-14-2018

you import the file, but don't instantiate the MyPlayer class
You write like:
import test
 
class MyPlayer(xbmcgui.WindowXML):
    def __init__(self):
        self.tst = test.MyClass(xbmcgui.WindowXML)

    def UpdateEPG(self):
        self.tst.get_programme_button_width()