[英]Python class written in string to literal object
我正在嘗試將以字符串格式寫入的 class 保存到數據庫中,然后讀取此文件並將 class 作為文字 class 加載。
我怎樣才能做到這一點?
test = """
class Test:
def __init__(self, test_name):
self.test_name = test_name
def print_name(self):
print(self.test_name)
"""
Test = eval(test)
test_obj = Test(test_name='test1')
如果我也知道如何以字符串格式保存 object 實例,那會更好,因為我也會將實例保存到數據庫中,就像保存 pickle 一樣。
非常感謝。
幾乎是重復的,但我不得不結合兩個答案。 如果你有你的 class 保存在一個文件中 - 你可能有 - 你很幸運:
根據這里你想使用inspect.getsource
。
根據此處,您將需要在字符串上調用exec
function 以檢索保存的 class。
把東西放在一起:
import inspect
class Test:
def __init__(self):
self.a = 1
def print(self):
print(self.a)
text = inspect.getsource(Test)
exec(text)
至於檢索未保存在文件中的 class 的代碼,我沒有找到方法,第一個鏈接問題的答案表明沒有。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.