当我工作和更新一个类时,我想要一个已经创建的类实例被更新。我该怎么做呢?在
class MyClass:
""" """
def __init__(self):
def myMethod(self, case):
print 'hello'
classInstance=MyClass()
我在Maya内部运行Python,然后在软件启动时创建实例。我打电话的时候classInstance.myMethod()即使我换了这个,它也总是印着“你好”。在
谢谢你
/基督教
更完整的例子:
^{pr2}$mCore=MayaCore()
最后一行在模块文件中(mCore=MayaCore())。 类中有大量的方法,因此我删除了它们以缩短滚动时间:-) 在类的上面也有import语句,但是由于某种原因,它们把格式搞砸了。它们在这里:
from pymel.all import *
import re
from maya import OpenMaya as om
from our_libs.configobj import ConfigObj
if getMelGlobal('float', "mVersion") >= 2011:
from PyQt4 import QtGui, QtCore, uic
import sip
from maya import OpenMayaUI as omui
在Maya中,我们在程序启动时导入该类及其子类:
from our_maya.mayaCore import *
在我们编写的其他工具中,我们调用麦克雷方法()根据需要。 我遇到的一个警告是,当我回去修改mCore方法并且实例调用已经开始时,我必须重新启动Maya,以便所有实例都随着方法更改而更新(它们仍将使用未修改的方法)。在
好吧,再试一次,但对问题有了新的理解:
将打印
^{pr2}$这也适用于老式的类。关键是修改类,而不是重写类的名称。在
我的另一个答案回答了您最初的问题,所以我将它留在这里,但是我认为您真正想要的是
reload
函数。在在更改类定义后执行此操作。你的新方法应该出现并被你的类的所有现有实例使用。在
您必须提供关于您正在做什么的更多细节,但是Python实例不存储方法,它们总是从类中获取方法。因此,如果更改类上的方法,现有实例将看到新方法。在
相关问题 更多 >
编程相关推荐