Nếu "biến" mà bạn đề cập đến là một giá trị có thể thay đổi, những gì bạn yêu cầu sẽ chỉ hoạt động.
fileB:
my_variable = ["a list with a string in it"]
fileA:
from fileB import my_variable # import the value
my_variable.append["and another string"]
Sau khi fileA
đã được tải fileB.my_variable
sẽ có hai giá trị trong đó.
Nhưng, điều đó chỉ hoạt động cho các giá trị có thể thay đổi. Nếu biến là bất biến, mã trong fileA
không thể thay đổi nó tại chỗ và do đó bạn sẽ gặp sự cố. Không có cách nào để khắc phục trực tiếp điều đó, nhưng có nhiều cách để giải quyết vấn đề và vẫn nhận được những gì bạn muốn.
Dễ nhất sẽ chỉ đơn giản là sử dụng import fileB
thay vì from fileB import my_variable
. Điều này cho phép bạn bất cứ điều gì trong không gian tên của ____ 10, chỉ bằng cách sử dụng một tên như
from fileB import my_variable # import the value
my_variable.append["and another string"]
1. Bạn có thể phục hồi mọi thứ trong không gian tên cho nội dung trái tim của bạn:fileB:
my_variable = 1 # something immutable this time
fileA:
import fileB
fileB.my_variable = 2 # change the value in fileB's namespace
Đó có lẽ là cách tiếp cận đơn giản nhất.
Một giải pháp khác là đặt biến bất biến bên trong một thùng chứa có thể thay đổi, và sau đó sửa đổi thùng chứa, thay vì biến. Chẳng hạn, nếu chuỗi
from fileB import my_variable # import the value
my_variable.append["and another string"]
2 là giá trị chúng tôi muốn thay đổi ví dụ đầu tiên của tôi, chúng tôi chỉ có thể gán một giá trị mới cho from fileB import my_variable # import the value
my_variable.append["and another string"]
3 [thay vì thêm].Một cách phổ biến để làm điều này là đặt các giá trị vào một từ điển, danh sách hoặc thậm chí trong một lớp [hoặc một trường hợp có thể thay đổi của một]. Sau đó, bạn có thể nhập đối tượng container và biến đổi nó để thay đổi giá trị bạn quan tâm.
tập tin. Write ["a_dictionary =" + str_dictionary + "\ n"] "\ n" Tạo dòng mới cho tệp ghi vào tiếp theo ..
tập tin. gần[].
Được chứ…then change
from fileB import my_variable # import the value
my_variable.append["and another string"]
6 to another value via my_variable = 1 # something immutable this time
2, and then have the variable from fileB import my_variable # import the value
my_variable.append["and another string"]
6 update in from fileB import my_variable # import the value
my_variable.append["and another string"]
0 with the new value?Tôi không chắc liệu điều này có thể không, nhưng tôi chắc chắn muốn nghĩ như vậy. Tôi đang sử dụng Python 2.7.11, cảm ơn bạn trong nâng cao.
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Đọc
Bàn luận
Khi các dòng mã tăng lên, thật cồng kềnh khi tìm kiếm khối mã cần thiết. Đó là một thực tế tốt để phân biệt các dòng mã theo công việc của họ. Nó có thể được thực hiện bằng cách có các tệp riêng biệt cho các mã làm việc khác nhau. Như chúng ta đã biết, các thư viện khác nhau trong Python cung cấp các phương thức và biến khác nhau mà chúng ta truy cập bằng cách sử dụng nhập đơn giản. Ví dụ, thư viện toán học. Nếu chúng tôi muốn sử dụng biến PI, chúng tôi sử dụng nhập khẩu nhập khẩu và sau đó là Math.pi.
Để nhập các biến từ một tệp khác, chúng tôi phải nhập tệp đó từ chương trình hiện tại. Điều này sẽ cung cấp quyền truy cập vào tất cả các phương thức và biến có sẵn trong tệp đó.
Tuyên bố từ nhập khẩu
Python từ câu lệnh cho phép bạn nhập các thuộc tính cụ thể từ một mô -đun. & NBSP;
Lưu ý: Để biết thêm thông tin, hãy tham khảo các mô -đun PythonFor more information, refer Python Modules
Các cách tiếp cận khác nhau để nhập các biến từ tệp khácapproaches to import variables from other file
- Nhập và sau đó sử dụng. để truy cập biến
- từ nhập và sử dụng các biến
- từ nhập * và sau đó sử dụng các biến trực tiếp.
Example:
Giả sử chúng ta có một tệp có tên là hoán đổi. Chúng tôi phải nhập biến X và Y từ tệp này trong một tệp khác có tên là Cal Calval.py. & NBSP;
Python3
my_variable = 1 # something immutable this time
5my_variable = 1 # something immutable this time
6 my_variable = 1 # something immutable this time
7my_variable = 1 # something immutable this time
8my_variable = 1 # something immutable this time
6 import fileB
fileB.my_variable = 2 # change the value in fileB's namespace
0import fileB
fileB.my_variable = 2 # change the value in fileB's namespace
1 import fileB
fileB.my_variable = 2 # change the value in fileB's namespace
2import fileB
fileB.my_variable = 2 # change the value in fileB's namespace
3import fileB
fileB.my_variable = 2 # change the value in fileB's namespace
4my_variable = 1 # something immutable this time
6 import fileB
fileB.my_variable = 2 # change the value in fileB's namespace
6import fileB
fileB.my_variable = 2 # change the value in fileB's namespace
3import fileB
fileB.my_variable = 2 # change the value in fileB's namespace
8 import fileB
fileB.my_variable = 2 # change the value in fileB's namespace
9Bây giờ, hãy tạo tệp Python thứ hai để gọi biến từ mã trên:
Python3
x value: 23 y value: 30 x value: 30 y value: 230
x value: 23 y value: 30 x value: 30 y value: 231
x value: 23 y value: 30 x value: 30 y value: 232
my_variable = 1 # something immutable this time
6 x value: 23 y value: 30 x value: 30 y value: 234
x value: 23 y value: 30 x value: 30 y value: 235
my_variable = 1 # something immutable this time
6 x value: 23 y value: 30 x value: 30 y value: 237
x value: 23 y value: 30 x value: 30 y value: 238
x value: 23 y value: 30 x value: 30 y value: 239
fileA
0fileA
1fileA
2fileA
3fileA
4
my_variable = 1 # something immutable this time
6 fileA
6x value: 23 y value: 30 x value: 30 y value: 238
x value: 23 y value: 30 x value: 30 y value: 239
fileA
0fileB.my_variable
0fileA
2fileB.my_variable
2Output:
x value: 23 y value: 30 x value: 30 y value: 23