Articles of oop

No cree un objeto cuando la condición no se cumple en __init __ ()

Tengo una clase que mapea un objeto de base de datos class MyObj: def __init__(self): …SQL request with id as key… if len(rows) == 1: …maps columns as my_obj attributes… self.exists = True else: self.exists = False Con tal diseño, se crea un objeto cada vez, y verificamos si está presente en la base de […]

Problemas para entender los valores y referencias de paso en Python

Tener problemas con cuándo se cambian los objetos y cuándo no están en Python. Aquí está mi ejemplo mal diseñado abajo: class person: age = 21 class bar: def __init__(self, arg1): self.foo = arg1 self.foo.age = 23 def baz(arg1): arg1.age = 27 def teh(arg1): arg1 = [3,2,1] Person1 = person() bar1 = bar(Person1) print Person1.age […]

¿Debo, y cómo, agregar métodos a int en python?

(Esta es una pregunta relacionada con el aprendizaje, así que cualquier consejo sobre por qué debo hacer o no hacer algo, así como los recursos recomendados para mejorar estas cosas, es más que bienvenido). Estoy tratando de aprender sobre la POO en python, y he hecho una clase simple de “Tiempo” como esta: class Time(object): […]

Método Resolución de orden en caso de clases base que tienen diferentes parámetros de inicio

Estoy tratando de entender MRO en Python. Aunque hay varias publicaciones aquí, no estoy obteniendo particularmente lo que quiero. Considere dos clases A y B derivadas de BaseClass , cada una con un __init__ toma __init__ diferentes. class BaseClass(object): def __init__(self): print “I am the base class” class A(BaseClass): def __init__(self, something, anotherthing): super(A, self).__init__() […]

¿Python realmente crea todos los métodos enlazados para cada nueva instancia?

Estoy leyendo sobre las clases en Python (3.4) y por lo que entiendo, parece que cada nuevo objeto tiene sus propias instancias de métodos enlazados. class A: def __init__(self, name): self.name = name def foo(self): print(self.name) a = A(‘One’) b = A(‘Two’) print(a.foo == b.foo) La salida de esto es False . Esto me parece […]

simular variables privadas en python

Posible duplicado: miembros privados en python Tengo pocas variables que realmente quiero ocultar porque no pertenecen a mi clase. Además, todas estas variables no documentadas inutilizan la herencia. ¿Cómo ocultas las variables que no quieres mostrar fuera de tu objeto? Para aclarar por qué necesito variables privadas, primero un ejemplo donde la incapacidad para ocultar […]

¿Por qué Python 2.7 namedtuple implementa __dict__?

La implementación namedtuple en Python 2.7 implementa __dict__ . Estoy confundido lo que esto está haciendo; ¿Por qué necesitamos hacer un __dict__ especial si ya hay propiedades definidas? C:\tmp> python Python 2.7.12 |Anaconda 4.1.1 (64-bit)| (default, Jun 29 2016, 11:07:13) [MSC v.1500 64 bit (AMD64)] on win32 Type “help”, “copyright”, “credits” or “license” for more […]

Accede a la variable estática desde el método estático

Quiero acceder a una variable estática desde un método estático: #!/usr/bin/env python class Messenger: name = “world” @staticmethod def get_msg(grrrr): return “hello ” + grrrr.name print Messenger.get_msg(Messenger) ¿Cómo hacerlo sin pasar grrrr a un método? ¿Es este el verdadero OOP? .. Algo como name o name self.name parece no funcionar: NameError: global name ‘name’ is […]

class __init __ () toma exactamente 2 argumentos (1 dado)

Estoy aprendiendo acerca de las clases en Python. Ejecutando dos ejemplos, ambos con función tienen 2 argumentos (1 de los cuales se da), sin embargo, solo se ejecuta un ejemplo pero el otro no. Este se ejecuta aunque x.setdata() solo tiene 1 argumentos. clase FirstClass: def setdata (self, value): self.data = value def display (self): […]

Parámetro de función orientada a objetos para alterar variables

Estoy tratando de convertir mi progtwig a un estilo orientado a objetos. Actualmente, tengo una función brandSelector () que toma la entrada de la consulta y encuentra una intersección entre la consulta y la matriz de marcas. Sin embargo, estoy intentando convertir el brandSelector () en un selector genérico () o buscador de intersecciones. Por […]