Existe-t-il un équivalent de la réflexion Java en Python?

Meilleure réponse

En Java et C #, la réflexion vous permet de coder pour interroger une classe ou une instance pour obtenir les propriétés lors de lexécution temps. Le terme quils utilisent en Python est « introspection ». Consultez le Guide de lintrospection Python pour plus de détails.

Vous pouvez faire quelque chose comme ceci:

#define a class

class Foo:

def bar(self):

return 123

#get the list of methodsmethodNames = filter(lambda x: not x.startswith("\_"), dir(foo.\_\_class\_\_))

#call the first method

getattr(foo, methodNames[0])()

Cependant, Python nest pas strictement typé donc il ny a pas vraiment de notion de types auto-descriptifs. Cela signifie que certaines des choses pour lesquelles nous utilisons généralement la réflexion (modèles dentité, sérialisation personnalisée comme JsonConvert, certains modèles IoC et tromperie générale orientée aspect) ne se traduisent pas très bien. aide générée automatiquement.

Vous pouvez faire quelque chose en utilisant des conventions de codage, mais le compilateur ne sera pas en mesure dappliquer des choses comme vous vous attendez. « Penser Python » prend un peu de temps pour sy habituer, et le langage fait des compromis qui sont un peu dérangeants si vous venez dun fond de type strict. Une partie du plaisir est que vous passez plus de temps à coder du code et moins de temps à coder des cadres. Il faut juste un peu de temps pour sy habituer.

Réponse

Python.

Ny pense même pas pour sélectionner une autre langue comme première langue. Pourquoi? Eh bien,

  • Python est facile. Faites-moi confiance sur celui-ci. Mon premier langage majeur était le C ++ et cela ma amené à envisager un changement de carrière. Voici un court extrait de code C ++ pour afficher « Hello world » à lécran –

#include

int main() {

std::cout

return 0;

}

Voici la même chose en Python

print("Hello world!")

  • Python est typé dynamiquement. Quest-ce que cest que ça? Daccord, donc les ordinateurs sont stupides. Ils ne sont pas assez intelligents pour savoir que 1 est un nombre, ou plus précisément, un entier et que «bonjour» est un mot ou une «chaîne» dans les conversations informatiques. Donc, à cause de cela, certains langages de programmation devaient spécifier le type de choses avec lesquelles ils travaillaient. Par exemple, si vous aviez besoin dajouter deux nombres en Java, voici ce que vous devrez faire –

class AddNums(){

public static void main(String args[]){

int first = 1;

int second = 2;

int sum = first + second;

System.out.println(sum);

}

}

Vous voyez ce mot-clé « int »? Cela signifie «entier» et cela dit simplement à lordinateur: «Hé, jai besoin de quelque chose pour stocker ce numéro, mais comme vous êtes trop stupide pour savoir que cest un nombre, je lai spécifié et vous devez donc vous rappeler que la variable appelé «premier» peut uniquement stocker des valeurs entières et je lui ai donné la valeur 1. Et ainsi de suite avec «second» et «somme» ». C’est ce qui se passe avec Java. En Python?

first = 1

second = 2

sum = first + second

print(sum)

Voyez-vous à quel point cest propre? Notez labsence sereine de points virgules.

  • Python prend en charge tous les styles de programmation. Daccord, cela peut être un peu controversé, mais cela vaut la peine dêtre mentionné. En gros, il existe deux méthodes (sans jeu de mots) de programmation: orientée objet et procédurale. Je ne vais pas entrer dans les détails mais, pour faire court, ce sont tous deux dexcellents moyens daborder les problèmes, mais lOrienté Objet est mieux adapté aux projets à grande échelle et sera, sil est bien fait (une énorme affaire en soi), plus propre. . La procédure est meilleure pour les petits projets pour que les choses soient simplement faites. Par exemple –

class Hello{

public static void main(String args[]){

System.out.println("Hello world!");

}

}

vs

def main():

print("Hello world!")

main()

  • Maintenant, Python et Java prennent en charge la POO (programmation orientée objet) mais Java vous oblige à ne pas vous en donner dautre sortie. Cela, pour les grandes entreprises et les projets à grande échelle, peut être une bonne chose, mais pour quelquun qui ne sait même pas ce quest une classe peut être un gros problème. Python, dautre part, vous permet de faire votre propre truc. Encore une fois, cela peut être une mauvaise chose, mais tout dépendra du type de pratiques que vous adopterez et suivrez. Ruby est un autre langage et il est très similaire à Python mais je ne l’aime pas autant car il est beaucoup plus indulgent avec les codeurs. Python maintient cette ligne fine.Mais oui, pour un débutant, Orienté objet peut se sentir forcé si tout ce que vous avez à faire est décrire quelque chose pour prendre en deux nombres et imprimer leur somme mais dans le long, vraiment long run, cela pourrait être une bonne chose.
  • Python est utilisé presque partout. Développement web? Vérifier. Tests de pénétration? Vérifier. Faire des jeux géniaux? Vérifier. Glue code pour les projets non écrits en Python? Vérifier. Apprentissage de la machinerie? Vérifiez ce garçon! Recherche scientifique? Vérifier. Les universitaires? Vérifier. Applications Android et autres projets évolutifs…? Java est votre truc. La programmation native est lun des endroits où Python échoue.

Et je pense que cest à peu près tout. Les deux langages sont excellents dans leur propre domaine et dans leur utilisation, mais Python, haut la main, est lune des meilleures choses avec lesquelles un débutant pourrait commencer aujourdhui.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *