J'ai essayé d'énumérer les différences entre java et python

** * Attention Ajoutez ce que vous avez remarqué dans l'ordre **

La boutique java commence à utiliser python et répertorie les choses qui ont surpris la différence. Aussi, laissez la méthode d'adaptation.

instruction switch

Il n'y a pas de syntaxe de commutateur en python. Il semble que s'il n'y a pas de commutateur, cela devrait être fait avec if. Alternativement, il existe également une méthode utilisant un dictionnaire.

Pourquoi n'y a-t-il pas d'instruction switch ou case en Python? (Site officiel)

Méthode utilisée dans le dictionnaire


def function_1():
    print('function_1')
def function_2():
    print('function_2')

functions = {'a': function_1, 'b': function_2}

func = functions['b']
func()

↓ Résultat de l'exécution ↓
function_1

constant

python n'a pas de constantes strictes En le nommant en toutes lettres majuscules, il est traité comme une constante opérationnellement. C'est juste une variable, donc bien sûr vous pouvez la changer si vous le souhaitez.

Interface

Il n'y a pas d'interface en python. Il existe un concept de classes abstraites appelé ABC (Abstract Base Classes), donc je me demande s'il y a un problème particulier. Tout ce que vous avez à faire est d'en faire une méthode abstraite.

Comment écrire une classe abstraite(abctest.py)


from abc import ABC, abstractmethod

class Animal(ABC):
    @abstractmethod
    def sound(self):
        pass

class Cow(Animal):
    def sound(self):
        print("moo")

class Penguin(Animal):
    pass  #N'implémente pas de méthodes abstraites

if __name__ == "__main__":
    hanako = Cow()
    hanako.sound()

    taro = Penguin()  #J'obtiens une erreur lors de l'instanciation car je n'ai pas implémenté de méthode abstraite

Résultat d'exécution


moo
Traceback (most recent call last):
  File "abctest.py", line 19, in <module>
    taro = Penguin()
TypeError: Can't instantiate abstract class Penguin with abstract methods sound

Surcharge

Il n'y a pas de concept de surcharge en python. Utilisez les paramètres d'argument par défaut et les arguments de longueur variable pour effectuer des opérations telles que la surcharge.

Un exemple d'erreur lors d'une tentative de surcharge

Ce n'est pas bien


class Farm:
    def add(self, animal):
        print(animal)
    def add(self, animal1, animal2):
        print(animal1)
        print(animal2)

if __name__ == "__main__":
    farm = Farm()
    farm.add('Dog')
    farm.add('Jersey','Holstein')

↓ Résultat de l'exécution ↓
Traceback (most recent call last):
  File "farmtest.py", line 13, in <module>
    farm.add()
TypeError: add() missing 2 required positional arguments: 'animal1' and 'animal2'

C'est acceptable

class Farm:
    def add(self, animal='Chicken'):
        print(animal)

if __name__ == "__main__":
    farm = Farm()
    farm.add()
    farm.add('Dog')

↓ Résultat de l'exécution ↓
Chicken
Dog
class Farm:
    def add(self, *args):
        if len(args) == 0:
            print('blank')
        for i in args:
            print(i)

if __name__ == "__main__":
    farm = Farm()
    farm.add()
    farm.add('Dog')
    farm.add('Jersey','Holstein')

↓ Résultat de l'exécution ↓
blank
Dog
Jersey
Holstein

ApplicationContext

Il n'y a pas de servlet Java ou de framework Spring dans django qui correspond à un contexte d'application plus large que la portée de la session. Utilisez-vous django?

Pause étiquetée

Il n'y a pas de pause étiquetée en python à utiliser lorsque vous voulez sortir d'une double boucle en java. Je ne l'utilise pas beaucoup en java, donc ça va.

Portée des variables locales

python est valide dans la fonction. java est valide dans le bloc.

C'est gênant pour une boutique java ...

Position de définition du champ

Notez que si vous l'écrivez comme une variable d'instance java, cela signifiera une variable de classe en python! Quand j'ai fait une erreur au début, j'ai été surpris que le mouvement soit inattendu.

class Cow:
    type = 'Holstein'  #Variable de classe
    def __init__(self, name):
        self.name = name  #Variable d'instance
    def walk(self):
        print(self.name + 'Marcher')

hanako = Cow('Hanako')
hanako.walk()

↓ Résultat de l'exécution ↓
Promenades Hanako

Recommended Posts

J'ai essayé d'énumérer les différences entre java et python
J'ai essayé de programmer le test du chi carré en Python et Java.
Différences entre la syntaxe Python et Java
Résumé des différences entre PHP et Python
J'ai essayé de vérifier et d'analyser l'accélération de Python par Cython
J'ai essayé de trouver la différence entre A + = B et A = A + B en Python, alors notez
J'ai comparé Java et Python!
J'ai essayé de toucher un fichier CSV avec Python
J'ai essayé de résoudre Soma Cube avec python
J'ai examiné le mappage de données entre ArangoDB et Java
[Python] J'ai essayé de représenter graphiquement le top 10 des ombres à paupières
J'ai essayé de résoudre le problème avec Python Vol.1
J'ai essayé de résumer les opérations de chaîne de Python
J'ai essayé de trouver l'entropie de l'image avec python
J'ai essayé de simuler la propagation de l'infection avec Python
Différence entre java et python (mémo)
J'ai essayé de toucher Python (installation)
J'ai essayé d'automatiser la mise à jour de l'article du blog Livedoor avec Python et sélénium.
Différence entre Python, stftime et strptime
J'ai essayé d'illustrer le temps et le temps du langage C
J'ai essayé d'afficher l'heure et la météo d'aujourd'hui w
[Python] J'ai essayé de visualiser la relation de suivi de Twitter
J'ai essayé d'implémenter la fonction d'envoi de courrier en Python
Je veux connaître la nature de Python et pip
J'ai essayé de créer une interface graphique à trois yeux côte à côte avec Python et Tkinter
J'ai essayé de changer le script python de 2.7.11 à 3.6.0 sur Windows10
J'ai essayé de comparer la vitesse de traitement avec dplyr de R et pandas de Python
J'ai essayé de déplacer le ballon
J'ai essayé d'estimer la section.
Je veux absorber la différence entre l'instruction for sur la matrice Python + numpy et l'instruction Julia for
J'ai essayé de résoudre l'édition du débutant du livre des fourmis avec python
[Introduction à Python] J'ai comparé les conventions de nommage de C # et Python.
J'ai essayé d'afficher le temps de lecture de la vidéo (OpenCV: version Python)
J'ai essayé de faire un processus d'exécution périodique avec Selenium et Python
J'ai essayé de détecter facilement les points de repère du visage avec python et dlib
J'ai essayé d'améliorer l'efficacité du travail quotidien avec Python
Comment afficher les octets de la même manière en Java et Python
J'ai essayé de résumer la gestion des exceptions Python
J'ai essayé d'implémenter PLSA en Python
Différence d'authenticité entre Python et JavaScript
Différences entre Ruby et Python dans la portée
J'ai essayé de reconnaître le mot de réveil
J'ai essayé d'implémenter PLSA dans Python 2
Entrée standard Python3 que j'ai essayé de résumer
J'ai essayé de résumer la modélisation graphique.
J'ai essayé d'implémenter ADALINE en Python
J'ai essayé d'estimer le rapport de circonférence π de manière probabiliste
J'ai essayé d'implémenter PPO en Python
Python: j'ai essayé le problème du voyageur de commerce
Comment utiliser le zip Python et énumérer
[Python] J'ai essayé de calculer TF-IDF régulièrement
Différences de multithreading entre Python et Jython
J'ai essayé de toucher Python (syntaxe de base)
Différence entre Ruby et Python (syntaxe de base)
J'ai essayé le framework de test Python Tornado
[Python] J'ai essayé de reproduire la bataille entre Lion et Gazel avec une formule super cool appelée équation Rotoka-Volterra.
Je ne suis pas sûr de la différence entre les modules, les packages et les bibliothèques, alors j'ai essayé de les organiser.
[Python] J'ai essayé de visualiser la nuit du chemin de fer de la galaxie avec WordCloud!
[Python] J'ai essayé de résumer le type collectif (ensemble) d'une manière facile à comprendre.