-
CréateurSujet
-
février 17, 2023 à 12:17 pm #24385BotParticipant
Bonjour, j’ai un problème à la con rapide en python et je trouve pas la solution:
Comment on fait pour définir un tableau en tant que membre d’une structure. La dernière ligne ici pose problème:class Parameter: type: str name: str class Prototype: return_type: str name: str parameters: Parameter[]
——————–
Warez Flow – Envoyé depuis le Discord : Culte du code -
CréateurSujet
-
AuteurRéponses
-
-
février 17, 2023 à 12:19 pm #24386
c’est une question pour ça
——————–
DK – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 12:19 pm #24387
——————–
DK – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 12:21 pm #24388
j’ai trouvé `parameters: list(Parameter)` mais faut que je vérifie si c’est ça
——————–
Warez Flow – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 12:36 pm #24389
nope c’est pas ça, rhaaaaa j’ai la haine
——————–
Warez Flow – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 12:42 pm #24390
Jute en posant `list`ça fait le travail… mais j’aime pas le fait que je ne peux pas forcer le type… je me contente de ça sauf si je trouve la solution pour le môment
——————–
Warez Flow – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 12:48 pm #24391
python et les types c’est pas trop ça
——————–
toinux – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 12:49 pm #24392
mais tu peux faire un truc comme ça :
list[type]——————–
toinux – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 12:49 pm #24393
genre float/str/whatever
——————–
toinux – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 12:49 pm #24394
pour t’attendre a une liste d’un type particulier 😉
——————–
toinux – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 12:50 pm #24395
T’es sur? ça n’a pas l’air de marcher pour mon cas
——————–
Warez Flow – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 12:51 pm #24396
'type' object is not subscriptable File "/home/XXX/misc_tools/Generate_Rpc_Functions/main.py", line 8, in Prototype parameters: list[int] File "/home/XXX/misc_tools/Generate_Rpc_Functions/main.py", line 5, in class Prototype: TypeError: 'type' object is not subscriptable
——————–
Warez Flow – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 12:51 pm #24397
Que ce soit pour list[int] ou bien pour list[Parameter]
——————–
Warez Flow – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 1:19 pm #24398
Ok je close mon issue, les classes en python peuvent vraiment pas s’utiliser comme des struct
——————–
Warez Flow – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:15 pm #24399
Hello 😉
Je comprends pas ce que tu veux en valeur finale sur ton param « Parameters » ?——————–
Hitch – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:27 pm #24400
Tu veux que Prototype hérite des attributs de Parametrr sous forme de liste ?
——————–
∫~RANMA[GANG] SAOTOME~∫ – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:29 pm #24401
Je veux faire une liste de Parameters, pour pouvoir itéré dessus, en soit je pourrais l’implémenter de façon différente. Mais c’est ce qui me parait le plus compréhensible
——————–
Warez Flow – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:30 pm #24402
—
1er élément de réponse, si tu veux forcer à ce que l’utilisateur ne puissent rentrer que des éléments `Parameter` en paramètre `parameters` de `Prototype` et que qu’ils peuvent en mettre plusieurs alors, en fonction de comment tu veux gérer tu peu partir sur un tuple, une liste ou un dict. Ici la liste semble plus recommander si tu compte naviguer dedans.
Aussi tu dois le forcer comme suis:
Ici tu définis que le paramètre `parameters` ne peut prendre qu’un objet list qui lui meme ne poura contenir que des objet Parameterparameters: list[Parameter]
——————–
Hitch – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:30 pm #24403
Je veux pas bosser avec des classes mais des Structures, donc au pire je peux toujours move ça vers un tupple
——————–
Warez Flow – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:31 pm #24404
Aaah c’était un peu ma question
——————–
Hitch – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:31 pm #24405
Justement cela ne marche pas de mon côté :
‘type’ object is not subscriptable——————–
Warez Flow – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:31 pm #24406
Mais ça existe en Python les structure
——————–
Hitch – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:32 pm #24407
Stackoverflow m’a redirigé vers les class
——————–
Warez Flow – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:32 pm #24408
https://stackoverflow.com/questions/35988/c-like-structures-in-python
——————–
Warez Flow – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:32 pm #24409
Oui parce que dans ce cas, c’est las logique Class qui prends et effectivement là ta classe n’est pas init, donc il reconnait pas « Parameter »
——————–
Hitch – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:32 pm #24410
ohhhh
——————–
Warez Flow – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:35 pm #24411
class Parameter: def __init__( c_type: str, name: str): self.c_type = c_type self.name = name class Prototype: def __init__( return_type: str, name: str, parameter: list[Parameter]): # Ton code pass
——————–
Hitch – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:36 pm #24412
*Avec les self dans l’init c’est mieux* xD
——————–
Hitch – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:36 pm #24413
Merci
——————–
Warez Flow – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:39 pm #24414
Moi j’ai pas de soucis sur du Py 3.9
——————–
Hitch – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:46 pm #24415
C’est presque bien
——————–
∫~RANMA[GANG] SAOTOME~∫ – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:47 pm #24416
Mais faudrait utiliser l’héritage comme dit plus haut
——————–
∫~RANMA[GANG] SAOTOME~∫ – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:49 pm #24417
Yes effectivement, si les 2 sont liés
J’avoue j’ai pensé que c’était séparé par défaut ^^——————–
Hitch – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:49 pm #24418
class Parameter: def __init__(self, c_type: str, name: str): self.c_type = c_type self.name = name class Prototype(Parameter): def __init__(self, return_type: str, name: str, parameter: list[Parameter]): super().__init__(c_type=‘´, name=´´)
——————–
∫~RANMA[GANG] SAOTOME~∫ – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:50 pm #24419
——————–
∫~RANMA[GANG] SAOTOME~∫ – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:51 pm #24420
Sauf que je comprends pourquoi y’a un init dans Parameter alors que les attributs sont pas « définis »
——————–
∫~RANMA[GANG] SAOTOME~∫ – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:51 pm #24421
A la limite
——————–
∫~RANMA[GANG] SAOTOME~∫ – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:52 pm #24422
Je les défini en fonction de ce que je parse dans mon fichier
——————–
Warez Flow – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:53 pm #24423
En fait je fais un script qui me génére du code C, du coup j’ai besoin de lire tout les prototype de toutes les fonctions, et de stocker les infos
——————–
Warez Flow – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:53 pm #24424
class Parameter: c_type: str name: str class Prototype(Parameter): def init(…): Parameter.init(self)
——————–
∫~RANMA[GANG] SAOTOME~∫ – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:54 pm #24425
Passer par une structure est la façon la plus logique, et au moins je peux accéder aux attributs avec leurs noms (plutôt que de passer par un tuple où ça sera vite chiant de piger ce que j’écrit)
——————–
Warez Flow – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:54 pm #24426
Comme ça tu chopes c_types et name directement
——————–
∫~RANMA[GANG] SAOTOME~∫ – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:54 pm #24427
Oui
——————–
∫~RANMA[GANG] SAOTOME~∫ – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:55 pm #24428
et un prototype peut avoir plusieurs parameters d’où ma volonté d’en faire un tableau
——————–
Warez Flow – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:55 pm #24429
Si y’a pas de fonction dans Parameter tu utilises une dataclasse
——————–
∫~RANMA[GANG] SAOTOME~∫ – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:55 pm #24430
C’est des structures, je vais pas définir de méthode oui
——————–
Warez Flow – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:56 pm #24431
j’ai rajouté @dataclass yep
——————–
Warez Flow – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:56 pm #24432
Ok
——————–
∫~RANMA[GANG] SAOTOME~∫ – Envoyé depuis le Discord : Culte du code -
février 17, 2023 à 2:56 pm #24433
👍
——————–
∫~RANMA[GANG] SAOTOME~∫ – Envoyé depuis le Discord : Culte du code
-
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.
Sujets récents
-
Fond d’écran tools python
par Bot
il y a 1 semaine
-
Multitouch Problem
par Bot
il y a 1 semaine et 3 jours
-
Convertir un ficher .py en .exe
par Bot
il y a 1 semaine
-
Problème signal R C# RAZOR
par Bot
il y a 1 semaine et 2 jours
-
aide HTML CSS PHP BUTTON
par Bot
il y a 1 semaine et 2 jours
Réponses récentes
Statistiques des Forums
- Comptes enregistrés
- 2 588
- Forums
- 51
- Sujets
- 912
- Réponses
- 17 355
- Mot-clés du sujet
- 0