Llamada a funciones de una clase

Attila Saorin mostroratas en yahoo.es
Mie Jun 5 11:35:45 CEST 2002


 --- Hernan Martinez Foffani <hernan en orgmf.com.ar> escribió: > > he creado una clase donde he
definido varias funciones, he 
> > llamado al fichero copy.py y la clase
> > se llama Copy, dentro por ejemplo tengo una funcion que se llama 
> > copying el caso es que no se como
> > llamar a dicha clase, desde el interprete, si pongo:
> > 
> > >>> import copy
> 
> aqui "importas" el modulo, lo haces visible. pero sus nombres
> estan bajo el espacio de nombres "copy".
> 
> > >>> Copy.copying("/home/attila/python/pruebas/varios/pila.py", 
> > "/home/attila/pila.py")
> > Traceback (most recent call last):
> >   File "<stdin>", line 1, in ?
> > NameError: name 'Copy' is not defined
> 
> para que funcione tendria que ser algo asi:
> 
> >>> copy.Copy.copying( ... etc ...)
> >>>

Hola Hernan, he probado las dos opciones que me dices y para la primera me dice:

>>> import copy
>>> copy.Copy.copying("/home/attila/python/pruebas/varios/pila.py", "/home/attila/pila.py")
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: unbound method copying() must be called with Copy instance as first argument (got str
instance instead)

> asi se invocaria si copying fuera un metodo de clase. pero no
> tengo idea de como has definido la clase Copy

asi:

import shutil
import os
import os.path

class Copy:
	def preserveOld (source):
		"This function is for rename the source with a .old"
		os.rename(source, "%s.old" % source)
        def ....
y debajo de esta, el resto de las funciones.

>>> 
> o si no:
> 
> >>> c = copy.Copy()
> >>> c.copying( ... etc ...)
> >>>

y para esta segunda opcion:

>>> c=copy.Copy()
>>> c.copying("/home/attila/python/pruebas/varios/pila.py", "/home/attila/pila.py")
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "copy.py", line 35, in copying
    if (os.path.isfile(source)): # it is a file
  File "/usr/lib/python2.2/posixpath.py", line 197, in isfile
    st = os.stat(path)
TypeError: coercing to Unicode: need string or buffer, instance found
>>> 

y si lo importo desde un fichero y luego lo quiero utlizar, como seria?

> -Hernan

Gracias.

Attila


_______________________________________________________________
Copa del Mundo de la FIFA 2002
El único lugar de Internet con vídeos de los 64 partidos. 
¡Apúntante ya! en http://fifaworldcup.yahoo.com/fc/es/


Más información sobre la lista de distribución Python-es