Python:检测重新定义?
我正在寻找一种方法,以某种方式检测python函数或类是否正在被重新定义,甚至仅当它被定义了两次并且一个定义删除了另一个定义时。Python:检测重新定义?,python,reflection,Python,Reflection,我正在寻找一种方法,以某种方式检测python函数或类是否正在被重新定义,甚至仅当它被定义了两次并且一个定义删除了另一个定义时。 这可以通过反射来实现吗? 可能是函数(或类)本身造成的?对类的重新定义对原始类没有任何影响,它只是将一个全新的类分配给相同的名称。检查很容易–只需保存原始文件,然后查看名称是否仍然引用它 class SomeClass(object): x = 1 # Save the original _my_saved_class = SomeClass class
这可以通过反射来实现吗?
可能是函数(或类)本身造成的?对类的重新定义对原始类没有任何影响,它只是将一个全新的类分配给相同的名称。检查很容易–只需保存原始文件,然后查看名称是否仍然引用它
class SomeClass(object):
x = 1
# Save the original
_my_saved_class = SomeClass
class SomeClass(object):
x = 2
# Check if they're the same!
if SomeClass is not _my_saved_class:
print "SomeClass was redefined!"
有没有办法在使用某个类时进行检查,而不必更改使用该类的代码?或者,当变量被覆盖时,有什么方法可以得到通知?不太可能,除非您使用
globals
执行代码,该代码将跟踪此情况。您真正想解决的问题是什么?为什么您想知道函数是否被重新定义?简而言之,我正在加密python文件,不想覆盖函数以包含print语句来显示文件的内容。但我有另一种方法,我主要感兴趣。在这种情况下,检测/防止重新定义并不能真正节省您的时间–例如,您可以通过替换函数的\uuuuu code\uuuuu
来更改函数的功能。