2014-05-12 1 views
0

Nécessité d'appeler une méthode capture() (omise) dans la classe Camera. Il suffit de l'exécution du code dans un script exécute OK:Objet 'tuple' d'instance non appelable

# import io, picamera, etc.. 
with picamera.PiCamera() as camera: 
    camera.resolution(self.camwidth, self.camheight) 
    camera.start_preview() 

Lorsque je tente de le faire orienté objet échoue:

class Camera(object): 
    def __init__(self, cam_width, cam_height): 
     self.camwidth = cam_width 
     self.camheight = cam_height 
     with picamera.PiCamera() as camera: 
      camera.resolution(self.camwidth, self.camheight) 
      camera.start_preview() 
      time.sleep(2) 

camera = Camera(32, 24) 

L'erreur ressemble à ceci:

File "ActionScript.py", line 23, in <module> camera = Camera(32, 24) 
File "ActionScript.py", line 13, in __init__ camera.resolution(self.camwidth,self.camheight) 
TypeError: 'tuple' object is not callable 

I ont essayé différentes façons autour de cela, mais la ligne:

camera.resolution(self.camwidth, self.camheight) 

.. semble à celui avec lequel il a un problème de l'intérieur d'un objet. Toujours « objet tuple n'est pas appelable. J'ai aussi essayé de placer __init__() juste enregistrer les valeurs de 32x24 et une méthode cameraSetup() pour exécuter le programme d'installation avec le même résultat après avoir appelé camera.cameraSetup()

Répondre

1

camera.resolution est un tuple. Cela signifie que son un . structure de données de tableau qui ne peut pas être modifié passé son instanciation Vous pouvez certainement pas l'appeler comme une fonction soit à la place, le point à un nouveau tuple

camera.resolution = (self.camwidth, self.camheight) 

source:.. http://picamera.readthedocs.org/en/latest/recipes1.html