Différences entre Python 2 et Python 3
Cette rubrique décrit la différence entre Python 2 et 3 lorsqu'elle s'applique à l'application Orchestration & Automation .
Les différences qui existent entre Python 2 et Python 3 sont traitées en détail dans la documentation Python. Par exemple, voir What's New in Python 3.0. De plus, vous devez connaître les différences qui s'appliquent dans le contexte de Orchestration & Automation.
Importation des modules
- array
- base64
- bs4
- calendar
- collections
- datetime (équivalent au module java.util.Date de Python 2)
- enum
- hashlib
- html
- html2text
- json
- random
- re
- regex
- chaîne
- heure
- xml
- all ()
- any()
- bytearray()
- bytes()
- classmethod
- staticmethod
- type ()
Types d'erreurs
- L'exception ResilientSecurityException se produit si un script tente de violer les restrictions de sécurité.
- L'exception ResilientMemoryLimitException se produit si le script tente d'allouer une quantité de RAM supérieure à celle autorisée (64 Mo).
mot clé « from »
Le mot clé from dans Python 3 entre en conflit avec l'attribut from dans l'objet de contexte de message du courrier électronique. C'est la raison pour laquelle, emailmessage.from n'est pas pris en charge dans les scripts Python 3 et doit être remplacé par emailmessage.sender. Python 2 prend toujours en charge emailmessage.from.
Zones inexistantes
None. Toutefois, dans Python 3, la même opération génère une erreur d'attribut qui indique que le nom de zone n'est pas valide. Ce comportement est conforme à la norme Python 3. La méthode hasattr() peut être utilisée pour vérifier si un attribut existe. Par exemple :if hasattr(incident, 'nonExistentField'):
log.info(incident.nonExistentField)
else:
log.info('Tried to access a field that does not exist')INFO: Cannot access a field that does not exist.Support Unicode
Python 3 prend charge Unicode en standard. Cela signifie que vous n'avez plus besoin d'utiliser explicitement le préfixe u ou la fonction unicode() pour stocker une chaîne en tant que chaîne unicode. Si vous convertisez des scripts existants de Python 2 à Python 3, vous devez vérifier et supprimer ces éléments pour éviter les erreurs liées à la unicode en Python 3. Pour plus d'informations, voir la documentation Python 3 https://docs.python.org/3.6/howto/unicode.html.
Type de données des objets texte
- Dans Python 3, que vous définissiez la valeur d'une zone de zone de texte à l'aide d'une simple chaîne ou d'une fonction auxiliaire, la valeur est stockée sous la forme d'un TextObject. Dans Python 2, si vous définissez la valeur d'une zone de zone de texte à l'aide d'une simple chaîne de caractères, la valeur est stockée sous la forme d'un objet Unicode. Si vous la définissez à l'aide d'une fonction auxiliaire, la valeur est enregistrée sous la forme d'un SimpleTextContentDTO.
- Dans Python 3, le format par défaut des objets de type TextObject est « html ». Le format est défini sur 'text' uniquement si la valeur de la zone est définie par un appel de l'auxiliaire helper.createPlainText(). Dans Python 2, le format des objets de type SimpleTextContentDTO peut être TEXT ou HTML, en fonction de l'auxiliaire appelé pour définir la valeur.
incident.description = 'set direct'
log.info(type(incident.description))
incident.description = helper.createPlainText('set using createPlainText helper')
log.info(type(incident.description))
incident.description = helper.createRichText('set using createRichText helper')
log.info(type(incident.description))