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