我有一个奇怪的问题,我坚持了好几天。我正在使用python for maya开发一个小程序。 (现在,我希望您知道我不是一个专业的程序员。只是用来构建一些内部脚本和工具的辅助编码器)
我正在构建的工具具有许多我作为类创建的UI元素,它们具有自己的方法。
我需要做的是使用字符串传递此类的实例。我知道这很奇怪,请允许我解释一下。
我需要实现小部件类的拖放操作,该操作可以将消息从源传递到目标。消息总是被(玛雅人)强行转换成字符串!!!
Class a(object):
def __init__(self, v)
self.v=v
instance=a("important")
通常我可以做的是
print (instance.v)
但是发生的是在消息交换过程中,实例被转换为文本,我得到了一个字符串而不是python对象
'<< strong>主要。位于0x000001BB0696CA90>的对象
是一个字符串。而且我无法运行或查询实际函数中的任何方法。
我知道这是非常菜鸟。请提供有关如何将字符串中保存的类实例转换为python对象的建议,以便我可以调用其方法或查询变量。
再次感谢。
答案 0 :(得分:0)
如何为您的类编写一个返回字符串的方法?
Caused by android.view.InflateException: Binary XML file line #11: Error inflating class ImageView
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:763)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at com.company.auth.home.AuthHomeFragment.onCreateView(AuthHomeFragment.kt:71)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2440)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:885)
at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1229)
Caused by android.content.res.Resources$NotFoundException: Resource ID #0x7f0801f1
at android.content.res.Resources.getValue(Resources.java:1266)
at androidx.appcompat.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:331)
at androidx.appcompat.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:198)
at androidx.appcompat.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:191)
at androidx.appcompat.content.res.AppCompatResources.getDrawable(AppCompatResources.java:102)
at androidx.appcompat.widget.AppCompatImageHelper.loadFromAttributes(AppCompatImageHelper.java:59)
at androidx.appcompat.widget.AppCompatImageView.<init>(AppCompatImageView.java:78)
at androidx.appcompat.widget.AppCompatImageView.<init>(AppCompatImageView.java:68)
at androidx.appcompat.app.AppCompatViewInflater.createImageView(AppCompatViewInflater.java:182)
at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:106)
at androidx.appcompat.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1266)
at androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1316)
at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:180)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:725)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at com.company.auth.home.AuthHomeFragment.onCreateView(AuthHomeFragment.kt:71)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2440)
结果:
class A(object):
def __init__(self, v):
self.v = v
def getV(self):
return self.v
如果这不起作用,您可以编写一个>>> Instance = A('important')
>>> print(Instance.getV())
important
>>> Instance.getV()
'important'
方法...
答案 1 :(得分:0)
好吧..酸洗工作!!我只是想从实例创建一个字符串,然后使用该字符串再次引用该实例。谢谢,@ kiran Baktha!
我刚刚做了
beforetransfer = pickel.dumps(instance)
在接收端
aftertransfer = pickel.loads(beforetransfer)
感谢社区!!你们都很棒!