Maison >développement back-end >Tutoriel Python >Pourquoi mon code Python renvoie-t-il une \'TypeError : \'module\' object is not callable\' lors de la création d'un socket ?

Pourquoi mon code Python renvoie-t-il une \'TypeError : \'module\' object is not callable\' lors de la création d'un socket ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-01 00:18:11227parcourir

Why is my Python code throwing a

TypeError : l'objet 'module' non appelable

L'erreur "TypeError : l'objet 'module' n'est pas appelable" se produit lorsque votre code tente pour invoquer un objet module comme s’il s’agissait d’une fonction. Dans le scénario donné, l'erreur survient en raison d'une utilisation incorrecte du module socket.

Comprendre le problème

Socket, avec un « s » minuscule, est un module en Python qui fournit des fonctionnalités de mise en réseau. Cependant, votre code tente de créer un socket en utilisant self.serv = socket(AF_INET,SOCK_STREAM). Le problème est que self.serv fait référence au socket de l'objet module, qui n'est pas appelable. Pour créer un socket, vous devez importer la classe socket depuis le module socket.

Résoudre l'erreur

Pour résoudre l'erreur, vous avez deux options :

  1. Utiliser directement la classe Socket : importez la classe socket en tant que suit :

    import socket
    self.serv = socket.socket(AF_INET, SOCK_STREAM)
  2. Utilisez l'instruction from : importez la classe socket directement à l'aide de l'instruction from :

    from socket import socket
    self.serv = socket(AF_INET, SOCK_STREAM)

Explication

Le module socket contient une classe nommée socket qui définit la fonctionnalité pour créer des prises réseau. En important ou en référençant directement cette classe, votre code peut créer et manipuler des objets socket selon vos besoins.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn