Después de repasar los conceptos básicos de python , le interesará saber más sobre temas más avanzados del lenguaje de programación Python3.
Este artículo los cubre.
Recuerde que Python funciona completamente con sangría y se recomienda practicarlo un poco ejecutando algunos programas. Use la tecla de tabulación para proporcionar sangría a su código.
Este artículo se divide en las siguientes cinco secciones:
- Clases
Al igual que cualquier otro lenguaje de programación orientado a objetos, Python admite clases. Veamos algunos puntos sobre las clases de Python.- Las clases se crean mediante la palabra clave class .
- Los atributos son las variables que pertenecen a la clase.
- Los atributos son siempre públicos y se puede acceder a ellos mediante el operador de punto (.). Ej.: Miclase.Miatributo
Una muestra, por ejemplo, para las clases:
# creates a class named MyClass
class
MyClass:
# assign the values to the MyClass attributes
number
=
0
name
=
"noname"
def
Main():
# Creating an object of the MyClass.
# Here, 'me' is the object
me
=
MyClass()
# Accessing the attributes of MyClass
# using the dot(.) operator
me.number
=
1337
me.name
=
"Harssh"
# str is an build-in function that
# creates an string
print
(me.name
+
" "
+
str
(me.number))
# telling python that there is main in the program.
if
__name__
=
=
'__main__'
:
Main()
Producción :
Harssh 1337
- Métodos
Método es un montón de código que está destinado a realizar una tarea particular en el código de Python.- La función que pertenece a una clase se llama Método.
- Todos los métodos requieren el parámetro ‘auto’ . Si ha codificado en otro lenguaje OOP, puede pensar en ‘self’ como la palabra clave ‘this’ que se usa para el objeto actual. Muestra la variable de instancia actual. ‘self’ funciona principalmente como ‘this’.
- La palabra clave ‘def’ se usa para crear un nuevo método.
# A Python program to demonstrate working of class
# methods
class
Vector2D:
x
=
0.0
y
=
0.0
# Creating a method named Set
def
Set
(
self
, x, y):
self
.x
=
x
self
.y
=
y
def
Main():
# vec is an object of class Vector2D
vec
=
Vector2D()
# Passing values to the function Set
# by using dot(.) operator.
vec.
Set
(
5
,
6
)
print
(
"X: "
+
str
(vec.x)
+
", Y: "
+
str
(vec.y))
if
__name__
=
=
'__main__'
:
Main()
Producción :
X: 5, Y: 6
- Herencia La
herencia se define como la forma en que una clase en particular hereda características de su clase base. La clase base también se conoce como ‘Superclase’ y la clase que hereda de la Superclase se conoce como ‘Subclase’
Como se muestra en la figura, la clase Derivada puede heredar características de su clase base, y también puede definir sus propias características.# Syntax for inheritance
class
derived
-
classname(superclass
-
name)
# A Python program to demonstrate working of inheritance
class
Pet:
#__init__ is an constructor in Python
def
__init__(
self
, name, age):
self
.name
=
name
self
.age
=
age
# Class Cat inheriting from the class Pet
class
Cat(Pet):
def
__init__(
self
, name, age):
# calling the super-class function __init__
# using the super() function
super
().__init__(name, age)
def
Main():
thePet
=
Pet(
"Pet"
,
1
)
jess
=
Cat(
"Jess"
,
3
)
# isinstance() function to check whether a class is
# inherited from another class
print
(
"Is jess a cat? "
+
str
(
isinstance
(jess, Cat)))
print
(
"Is jess a pet? "
+
str
(
isinstance
(jess, Pet)))
print
(
"Is the pet a cat? "
+
str
(
isinstance
(thePet, Cat)))
print
(
"Is thePet a Pet? "
+
str
(
isinstance
(thePet, Pet)))
print
(jess.name)
if
__name__
=
=
'__main__'
:
Main()
Producción :
Is jess a cat? True Is jess a pet? True Is the pet a cat? False Is thePet a Pet? True Jess
- Iteradores
Los iteradores son objetos sobre los que se puede iterar.- Python usa el método __iter__() para devolver un objeto iterador de la clase.
- El objeto iterador luego usa el método __next__() para obtener el siguiente elemento.
- for loops se detiene cuando se genera StopIteration Exception.
# This program will reverse the string that is passed
# to it from the main function
class
Reverse:
def
__init__(
self
, data):
self
.data
=
data
self
.index
=
len
(data)
def
__iter__(
self
):
return
self
def
__next__(
self
):
if
self
.index
=
=
0
:
raise
StopIteration
self
.index
-
=
1
return
self
.data[
self
.index]
def
Main():
rev
=
Reverse(
'Drapsicle'
)
for
char
in
rev:
print
(char)
if
__name__
=
=
'__main__'
:
Main()
Producción :
e l c i s p a r D
- Generadores
- Otra forma de crear iteradores.
- Utiliza una función en lugar de una clase separada
- Genera el código de fondo para los métodos next() e iter()
- Utiliza una declaración especial llamada yield que guarda el estado del generador y establece un punto de reanudación para cuando se vuelve a llamar a next().
# A Python program to demonstrate working of Generators
def
Reverse(data):
# this is like counting from 100 to 1 by taking one(-1)
# step backward.
for
index
in
range
(
len
(data)
-
1
,
-
1
,
-
1
):
yield
data[index]
def
Main():
rev
=
Reverse(
'Harssh'
)
for
char
in
rev:
print
(char)
data
=
'Harssh'
print
(
list
(data[i]
for
i
in
range
(
len
(data)
-
1
,
-
1
,
-
1
)))
if
__name__
=
=
"__main__"
:
Main()
Producción :
h s s r a H ['h', 's', 's', 'r', 'a', 'H']
Este artículo es una contribución de Harsh Wardhan Chaudhary (pasante) . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA