Skip to content

Instantly share code, notes, and snippets.

@Guilouf
Created October 23, 2017 13:55
Show Gist options
  • Save Guilouf/9fedf5a3d2004fa6a7a209b5e3f55b38 to your computer and use it in GitHub Desktop.
Save Guilouf/9fedf5a3d2004fa6a7a209b5e3f55b38 to your computer and use it in GitHub Desktop.
ll = ['ya', 'bor']
point_visrgul = ';'.join
print(point_visrgul(ll))
class bidule:
pass
inst = bidule()
inst.attr_inst = "un_attribut" # attr d'instance à la volée
# on peut créer les attributs à la volée
bidule.nouvel_attr = 'un_nouvel_attribut'
bidule.nouvelle_meth = lambda: 'je suis une lambda' # on peut rajouter des methodes a la volée, mm lambdas
print(bidule.nouvel_attr)
print(bidule.nouvelle_meth())
print(inst.attr_inst)
Classmerd = type('ClasseDeMerde', (), {'attr_bidule2': 15, 'truc': 'yo'}) # création de classe avec attributs
print(Classmerd.truc)
# une metaclasse... qui peuvent être des fonctions..
def ajoute_sous_classe(nom, parents, attributs):
Sous_classe_putain = type('Putain', (), {'de': 'merde'})
merged_dict = dict(attributs, **{'sous_clacla': Sous_classe_putain})
return type(nom, parents, merged_dict) # nom+'_meta'
Super_classe = ajoute_sous_classe('super_clacla', (), {'tarace': 'boulba'})
class Super_classe2(metaclass=ajoute_sous_classe): # fait pareil que dessus ?
pass
# __metaclass__ = ajoute_sous_classe # fixme c'est du 2.7 de merde ca..
print("\n", Super_classe.__name__)
print(Super_classe.__dict__)
print(Super_classe.sous_clacla.__dict__) # liste les methodes de la sous classe
print("\n", Super_classe2.__name__)
print(Super_classe2.__dict__)
print(Super_classe2.sous_clacla.__dict__) # liste les methodes de la sous classe
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment