-1
votes

Fonction Python appelant une variable d'une autre fonction. Mais pourquoi?

Je sais que celui-ci est assez dupliqué cependant: xxx

je veux utiliser '.' fonction de point (syntaxe) pour accéder aux variables déclarées dans d'autres fonctions comme : xxx

doit imprimer: xxx

ne serait-il pas tellement plus facile? < p> Et je sais que cela peut être fait en utilisant classe ou à de nombreuses autres voies aussi.

Mais pourquoi ne fonctionnera-t-il pas de cette façon? Y a-t-il une raison (s) de cette manière d'accès? Est-ce que cela rendra python vulnérable? ou fera-t-il faire python instable?

Je n'ai pas pu trouver une explication parfaite, concise, précise et précise pour ce problème d'accès.

Merci beaucoup.


Plus précis pour @goyo xxx

ou xxx

Je pense que c'est plus instinctif de codes d'écriture. Peut-être que c'est juste moi.


19 commentaires

En Python, une fonction qui ne renvoie rien ne renvoie rien Aucun .


Vous ne retournez rien de la fonction.


Ce n'est pas clair du tout ce que vous envisagez d'un problème ou de ce que "ceci" est que cela peut être fait avec une classe.


Demandez-vous pourquoi déclarer une variable locale dans une fonction ne l'ajoute pas comme un attribut à Aucun ? Ou pourquoi une fonction sans référence déclaration ne renvoie pas implicitement un objet contenant toutes les fonctions variables locales au lieu de retourner Aucun ? Ou autre chose?


Je pense qu'ils demandent pourquoi l'exécution d'une fonction ne renvoie pas automatiquement un objet qui a toutes les variables locales de la fonction en tant qu'attributs. ... Parce que ce n'est pas quelles fonctions sont pour.


Maintenant, votre code n'est pas d'accord avec la sortie que vous prétendez produire.


Erreur devrait être maintenant: AttributeError: L'objet 'Liste' n'a aucun attribut 'A'


FUNC1 renvoie une liste, donc B est cette liste. Je pense que votre prochain arrêt doit être Tutoriel Python .


Je suis dyslexique. molbdnilo


@ user10874790 Oh, je suis désolé. Vous écrivez mieux que la plupart des gens, alors je n'avais aucune idée.


Pourquoi changez-vous votre question après avoir accepté une réponse? La réponse acceptée répond-elle à votre question ou non?


@Goyo n'est pas extrêmement précisément. Cependant, le choisi au moins dirigé la région où je m'interrogeais. Et plus tard, j'ai lu plus les réponses et les réponses, je suppose que c'est quelque chose ne peut être répondu que si elle n'est répondu aux développeurs Python. Et j'espérais que si des développeurs de python ou d'autres langues mènent ma question. C'est pourquoi j'ai édité ma question pour livrer mon intention. Excuses si l'une de cela confond aucun.


Je ne pense pas que cela rend votre intention plus claire, mais en fait le contraire. Quoi qu'il en soit, qu'est-ce qui vous fait penser que impression (b.a) est "beaucoup plus facile" que print (b) ?


@Goyo qui est intéressant. Il n'est pas question d'imprimer quelque chose plutôt que cela peut rendre la vie plus facile en n'utilisant pas global ou en faisant une autre variable dans une nouvelle fonction. Peut-être??


@Goyo def Func (): A = [1,2,3,4,5] def Func2 (): B = FUNC () B.A [0] = "Ne fonctionne pas" Imprimer (B) Func2 ()


@Goyo mis à jour à nouveau


Qu'attendez-vous B dans les exemples en bas? Qu'est-ce que impression (b) est-il réellement imprimé?


@Goyo pour Func2 et 3 ['ne fonctionne pas', 2, 3, 4, 5]. Attendez. Imprimer (B.A) a plus de sens.


Alors, quel serait le code qui démontre votre point?


3 Réponses :


1
votes

C'est parce que vous n'avez pas dit retour code> dans la fonction Func1 code>, vous devez donc le faire:

def func1():
    a = [1,2,3,4,5]
    return a

def func2():
    b = func1()
    print(b[0])


0 commentaires

1
votes

Une fonction (dans votre cas une procédure car elle ne renvoie rien) est un traitement sur les données, pas un support de données comme un objet ou une structure. Lorsque vous écrivez B = FUNC (), vous vous attendez à obtenir le résultat de Func (). Vous n'avez pas à savoir ce qui se passe dans Func. A Dans votre fonction est une variable interne pouvant être détruites recueillies à la fin de la fonction (personne ne le référencant)


1 commentaires

Merci pour vos aimables explications.



2
votes

Vous avez une erreur variables de classe avec variables de fonctions xxx


3 commentaires

Oui ça marche. Mais je me demandais pourquoi Python n'était pas censé construire comme celui que j'ai fait.


J'utiliserai ';' Pour séparer le code, b = func1 (); Imprimer (type (Func1 ())); Résultat: , impression (type (b)); Résultat: ; b est une liste et les listes sont des types de variables en python, c'est la même chose que dire, a = 2; A.C = 3; Une variable ne peut pas gérer une autre variable au moins en python!


Merci à toi! Votre aide compte.