Python Forum
How to convert a string "<... object at POINTER>" to an object?
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How to convert a string "<... object at POINTER>" to an object?
#1
I want to convert a string "<... object at POINTER>" to an object.
Python version: 3.7.4

class MyClass:
    def Test(self):
        print("Hello!")

c = MyClass()
s = str(c)
print("The value of the string s is", s)
 
c0 = convert_str_to_object(s) # This is undefined but how to fix this?
c0.Test() # This should print "Hello!"
Output:
The value of the string s is <__main__.MyClass object at 0x0000019C9A340908> Hello! (This should appears)
I want to convert the string s back to an object, but how?

The reason:
I want to make a something like a global static variable, but I don't know how do it with the program that's using Python as a script, that's why I convert my object to string then I'm able to store it to the program because it only accepts string, and when I run the script again, I can reuse the object from the stored string. Now you see that it's something like a static object, but I don't know how to do that.
Reply
#2
(Aug-08-2020, 06:59 PM)mandaxyz Wrote: The reason:
I want to make a something like a global static variable, but I don't know how do it with the program that's using Python as a script, that's why I convert my object to string then I'm able to store it to the program because it only accepts string, and when I run the script again, I can reuse the object from the stored string. Now you see that it's something like a static object, but I don't know how to do that.

What? I'm not really understanding why you want to store the object as a string. Can't you use the pickle module?
Reply
#3
You want to serialize python objects, use the pickle module
>>> class MyClass:
...     def test(self):
...         print('Hello!')
... 
>>> obj = MyClass()
>>> import pickle
>>> s = pickle.dumps(obj)
>>> s
b'\x80\x03c__main__\nMyClass\nq\x00)\x81q\x01.'
>>> obj2 = pickle.loads(s)
>>> obj2.test()
Hello!
In this example pickle serializes a MyClass instance as a bytes object that can potentially be stored in a file and reused later.
Reply
#4
(Aug-08-2020, 07:17 PM)ndc85430 Wrote: What? I'm not really understanding why you want to store the object as a string. Can't you use the pickle module?

Thank you, but I cannot use the pickle module because there is an error message "TypeError: can't pickle PyCapsule objects". What I did is as below:
import pickle

class CLASS:
    ...
    def Func():
        p = pickle.dumps(self.drawHandler) # I'm trying to pickle a function handler.
        ...
        unpickle = pickle.loads(p)
I give up on this method, the next method is how to make the kind of global static object? I don't know if it's an off-topic if I ask it here, but I will Google it now.
Reply
#5
mandaxyz Wrote:I give up on this method
Serialization of live objects is not a easy topic, don't give up just because you don't find a solution that works instantly in all cases. It takes some perseverance to reach your goals.

mandaxyz Wrote:the next method is how to make the kind of global static object
It is not clear at all what you mean by that. You could perhaps explain what you need exactly, or why.
Reply
#6
@Gribouillis, it's impossible to solve the problem if we talk about python only, I even tried to use the keyword 'global' but it didn't work because the global variable is killed and it doesn't exist anymore when the python script execution is finished, and after I re-run again the python script inside the program, the variable is gone.

But fortunately, I could solve the problem, I didn't use the keyword 'global' but the program can store a variable inside itself and I use it as a global variable. I cannot use 'pickle', it's impossible to use it, but I found a solution to store the variable object directly.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Printing out incidence values for Class Object SquderDragon 3 263 Apr-01-2024, 07:52 AM
Last Post: SquderDragon
  This result object does not return rows. It has been closed automatically dawid294 6 995 Mar-30-2024, 03:08 AM
Last Post: NolaCuriel
  TypeError: cannot pickle ‘_asyncio.Future’ object Abdul_Rafey 1 369 Mar-07-2024, 03:40 PM
Last Post: deanhystad
  How can I pause only one object? actualpy 1 356 Feb-01-2024, 07:43 PM
Last Post: deanhystad
  error in class: TypeError: 'str' object is not callable akbarza 2 494 Dec-30-2023, 04:35 PM
Last Post: deanhystad
Question Chain object that have parent child relation.. SpongeB0B 10 1,076 Dec-12-2023, 01:01 PM
Last Post: Gribouillis
Bug TypeError: 'NoneType' object is not subscriptable TheLummen 4 734 Nov-27-2023, 11:34 AM
Last Post: TheLummen
  TypeError: 'NoneType' object is not callable akbarza 4 979 Aug-24-2023, 05:14 PM
Last Post: snippsat
  [NEW CODER] TypeError: Object is not callable iwantyoursec 5 1,332 Aug-23-2023, 06:21 PM
Last Post: deanhystad
  AttributeError: '_tkinter.tkapp' object has no attribute 'username' Konstantin23 4 1,663 Aug-04-2023, 12:41 PM
Last Post: Konstantin23

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020