簡體   English   中英

Python class 以字符串形式寫入文字 object

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM