¿Cómo llamar a una función de otra clase en python?

Soy muy nuevo en Python y en el software Sikuli. 🙁 Estaba intentando llamar a una función de otra clase. Aquí hay una clase que contiene las funciones.

class Reader(): def getUsername(): .... return username def getAddress(): ..... return address 

Aquí hay otra clase que llama a las funciones mencionadas anteriormente.

 class DisplayInfo(): reader = Reader() uName = reader.getUsername() addr = reader.getAddress() ...... ...... 

Pero cuando ejecuté la clase DisplayInfo, recibí este error.

 uName = reader.getUsername() TypeError: getUsername() takes no arguments (1 given) 

¿Alguien podría ayudarme a resolver esto? Muchas gracias de antemano!

Al definir Reader , las funciones deben definirse para tomar un argumento self , que es la instancia de la clase a la que se llamó:

 class Reader(): def getUsername(self): .... return username def getAddress(self): ..... return address 

El error que está recibiendo es porque Python está tratando de pasar la instancia de la clase a las funciones, pero como se definen como que no tienen argumentos, no pasa ese argumento.

Python pasa implícitamente el objeto a las llamadas de método, pero debe declarar explícitamente el parámetro para él. Esto se denomina habitualmente self:

 def getUserName(self) def getAdress(self) 

Define tu función como abajo.

 def getUsername(self): def getAddress(self): 

falta el yo en tu código.

Intenta esto.

 class Reader(): def getUsername(self): username = "name" return username def getAddress(self): address = 'address' return address class DisplayInfo(): reader = Reader() uName = reader.getUsername() addr = reader.getAddress() reader = Reader() uName = reader.getUsername() uAddress = reader.getAddress() 

Python siempre pasa implícitamente el objeto a la función, es por eso que obtienes el error. Usted resuelve esto cambiándolo a

 getUsername(self): ... return username 

Las clases se usan por esta misma razón, de modo que usted encapsula las funciones y variables en objetos que solo están disponibles para ellos mismos. Para que un objeto completamente diferente tenga acceso a cosas inherentes a otra cosa, hay tres formas:

Instanciación

Básicamente, lo que acabas de hacer, creas una instancia de un objeto lector y llamaste su método.

Clase en una clase

Si una de las clases es una clase infantil, el niño puede usar los métodos de los padres.

Herencia

Usted hace que la clase herede las propiedades de la otra clase. Es muy poderoso y divertido una vez que lo entiendes.

Cada función en el módulo de Python debe tener un primer argumento como auto, esto no tiene ningún significado específico, pero si no sigue la convención, definitivamente caerá en el estado de error.

 class Reader(): def getUsername(self): .... def getAddress(self): ..... 

Puede consultar el siguiente documento para obtener más información Clases de Python