Lưu ý: Không sử dụng Eval trong bất kỳ trường hợp nào bạn đang nhận tên để tìm kiếm từ đầu vào đã nhập của người dùng. Ví dụ: nếu điều này đến từ một trang web, không có gì ngăn cản bất cứ ai nhập vào:not use eval in any case where you are getting the name to look up from user entered input. For example, if this comes from a web page, there is nothing preventing anyone from entering:
__import__["os"].system["Some nasty command like rm -rf /*"]
như đối số. Tốt hơn là giới hạn các vị trí tra cứu được xác định rõ như từ điển hoặc thể hiện bằng cách sử dụng getAttr []. Ví dụ: để tìm giá trị "bài" trên bản thân, sử dụng:
varname = "post"
value = getattr[self, varname] # Gets self.post
Tương tự như đặt nó, sử dụng setAttr []:
value = setattr[self, varname, new_value]
Để xử lý các tên đủ điều kiện, như "post.id", bạn có thể sử dụng một cái gì đó như các hàm dưới đây thay cho getattr [] / setattr [].
def getattr_qualified[obj, name]:
for attr in name.split["."]:
obj = getattr[obj, attr]
return obj
def setattr_qualified[obj, name, value]:
parts = name.split["."]
for attr in parts[:-1]:
obj = getattr[obj, attr]
setattr[obj, parts[-1], value]
Giới thiệu
Nhiều cách với các ví dụ để chuyển đổi chuỗi Python thành một tên biến
1. Sử dụng phương thức Exec [] trong Python để chuyển đổi chuỗi Python thành một tên biến
Nhiều cách với các ví dụ để chuyển đổi chuỗi Python thành một tên biến
1. Sử dụng phương thức Exec [] trong Python để chuyển đổi chuỗi Python thành một tên biến
1. Sử dụng phương thức Exec [] trong Python để chuyển đổi chuỗi Python thành một tên biến
2. Sử dụng hàm locals [] để chuyển đổi chuỗi python thành tên biến
3. Sử dụng hàm globals [] để chuyển đổi chuỗi python thành một tên biếnexec[] method with some modifiers and trying to convert a string into a variable name. Let us look in detail with the help of the example explained below:
#input String str = "Pythonpool" #apply exec[] method exec["%s = %d" % [str,5000]] #print string print["output : ",Pythonpool]
Output:
output : 5000
Explanation:
- Ưu và nhược điểm của việc tạo ra các biến toàn cầu trong PythonPythonpool.
- Ưu điểmexec[] function.
- Nhược điểm exec[] function, we have taken %s and %d, which are used as a placeholder for string value and decimal value, respectively. It means that we have assigned an integer value to a string with the help of the assignment operator =. Both %s and %d are enclosed inside the quotations ” “.
- Phải đọc
- Sự kết luận
- Chúng tôi đã biết về nhiều chủ đề trong Python. Nhưng, bạn đã bao giờ sử dụng chuỗi đầu vào làm tên biến trong chương trình của bạn. Trong hướng dẫn này, chúng tôi sẽ chỉ tập trung vào chủ đề này để chuyển đổi chuỗi Python thành một tên biến. Nói cách khác, chúng tôi sẽ tạo tên biến động và gán một giá trị cho chúng. Có nhiều cách để chuyển đổi một chuỗi thành một tên biến. Chúng tôi sẽ thảo luận về tất cả chúng trong bài viết này.
- Chúng tôi sẽ chuyển đổi một chuỗi thành một tên biến với nhiều cách như hàm exec [], hàm locals [] và hàm toàn cầu [].
2. Sử dụng hàm locals [] để chuyển đổi chuỗi python thành tên biến
3. Sử dụng hàm globals [] để chuyển đổi chuỗi python thành một tên biếnThe local symbol table is accessed with the help of the locals[] function. This function works the same as the globals[] function. The only difference between them is the locals[] function access local symbol table, and globals[] access the global symbol table, and both return the dictionary.
Ưu và nhược điểm của việc tạo ra các biến toàn cầu trong Python
#taking input as a string str = "pythonpool" locals[][str] = 5000 print[pythonpool]
Output:
5000
Explanation:
- Ưu điểm
- Nhược điểm
- Sự kết luận
- Chúng tôi đã biết về nhiều chủ đề trong Python. Nhưng, bạn đã bao giờ sử dụng chuỗi đầu vào làm tên biến trong chương trình của bạn. Trong hướng dẫn này, chúng tôi sẽ chỉ tập trung vào chủ đề này để chuyển đổi chuỗi Python thành một tên biến. Nói cách khác, chúng tôi sẽ tạo tên biến động và gán một giá trị cho chúng. Có nhiều cách để chuyển đổi một chuỗi thành một tên biến. Chúng tôi sẽ thảo luận về tất cả chúng trong bài viết này.
- Do đó, bạn có thể thấy đầu ra.
3. Sử dụng hàm globals [] để chuyển đổi chuỗi python thành một tên biến
Hàm Globals [] được sử dụng để trả về từ điển của bảng ký hiệu hiện tại. Một bảng biểu tượng toàn cầu được sử dụng để lưu trữ tất cả các thông tin liên quan đến phạm vi toàn cầu của chương trình, được truy cập bằng hàm Globals [].accessed using the globals[] function.
Trong ví dụ này, chúng tôi sẽ lấy đầu vào làm chuỗi. Sau đó, chúng tôi sẽ áp dụng các thế giới làm từ điển bằng cách đặt một số giá trị cho nó. Cuối cùng, chúng tôi sẽ in chuỗi đầu vào và chuyển đổi một chuỗi thành một tên biến.
#taking input as a string str = "pythonpool" globals[][str] = 5000 print[pythonpool]
Output:
5000
Explanation:
- Đầu tiên, chúng tôi đã lấy một đầu vào trong str là pythonpool.
- Sau đó, chúng tôi đã sửa đổi giá trị của chuỗi đã cho thông qua từ điển toàn cầu thông qua hàm Globals [].
- Cuối cùng, chúng tôi đã in chuỗi đầu vào và xem chuỗi có chứa tên biến hay không.
- Nếu chương trình chạy thành công và in đầu ra, chúng tôi đã chuyển đổi một chuỗi thành một tên biến.
- Do đó, bạn có thể thấy đầu ra.
Ưu và nhược điểm của việc tạo ra các biến toàn cầu trong Python
Ưu điểm
- Khi chúng ta tạo các biến động, họ thêm một cấp độ khác nhau.
- Nó tránh nhiều sao chép mã hơn.
Nhược điểm
- Chúng ta không thể tạo các biến động cho các chức năng.
- Thật dễ dàng để giữ tất cả các bài hát của các tài liệu tham khảo từ vựng:
- Nếu chúng ta tạo tên biến tùy ý, xung đột có thể xảy ra.
- Rất khó để dự đoán hành vi và tìm đầu vào và đầu ra trong mã.
Phải đọc
Sự kết luận
Trong hướng dẫn này, chúng tôi đã tìm hiểu về khái niệm chuyển đổi một chuỗi thành một tên biến. Chúng tôi đã thảo luận tất cả các cách mà chúng tôi có thể chuyển đổi một chuỗi thành một tên biến. Tất cả các cách được giải thích chi tiết với sự trợ giúp của các ví dụ. Bạn có thể sử dụng bất kỳ phương pháp nào bạn thấy phù hợp cho bạn và chương trình của bạn.
Tuy nhiên, nếu bạn có bất kỳ nghi ngờ hoặc câu hỏi nào, hãy cho tôi biết trong phần bình luận bên dưới. Tôi sẽ cố gắng giúp bạn càng sớm càng tốt.