Я знаю, что этот довольно дублируется:
def func1():
a = [1,2,3,4,5]
return a
def func2():
b = func1()
print(b.a[0])
func2()
AttributeError: 'list' object has no attribute 'a'
Я ХОЧУ использовать '.'
точечную функцию (синтаксис) для доступа к переменным, объявленным в других функциях, таких как:
print(b.a[0])
or
print(b.a)
должен распечатать:
1
or
[1,2,3,4,5]
Разве это не сделает все намного проще?
И я знаю, что это можно сделать с помощью class
или многими другими способами.
Но почему это не сработает?Есть ли какие-либо «обязательные» причины для такого способа доступа?Это сделает Python уязвимым?или это сделает Python нестабильным?
Мне не удалось найти идеальное, краткое, ясное и точное объяснение этой проблемы доступа.
Большое спасибо.
, чтобы быть более точным для@ Гойо
def func():
a = [1,2,3,4,5]
def func2():
b = func()
b.a[0] = "Not Working"
print(b)
func2()
или
def func3():
from . import func
b = func()
b.a[0] = 'Not working either'
print(b)
func3()
Я просто чувствую, что это более инстинктивный способ написания кодов.Может быть, это только я.