Created
October 23, 2017 13:55
-
-
Save Guilouf/9fedf5a3d2004fa6a7a209b5e3f55b38 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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