13.元编程

予早 2024-10-05 10:22:52
Categories: Tags:

元编程,Meta Programming,编写可以操作代码的代码,利用A语言编写可以操作B语言程序的程序,A、B为任意语言,A语言称之为元语言,B语言称之为目标语言。

sys.modules

import sys

g = 9.8

print(sys.modules)
print(sys.modules['__main__'])
print(sys.modules['__main__'].g)
print(getattr(sys.modules['__main__'], 'g'))
print(getattr(sys.modules['sys'], 'getrefcount')(object))

hasattr、getattr、setter、delattr

class A:
    a = 1

    @classmethod
    def func1(cls):
        print(1)

    @staticmethod
    def func2(a):
        print(a)

    def func3(self):
        print(3)


a = getattr(A, 'a')
print(a)
delattr(A, 'a')
print(hasattr(A, 'a'))

print(hasattr(A, 'func1'))
method = getattr(A, 'func1')
method()  # 省略cls

print(hasattr(A, 'func2'))
method = getattr(A, 'func2')
method(2)


a = A()
print(hasattr(a, 'func3'))
method = getattr(a, 'func3')
method()  # 省略self

Python调用C

https://blog.csdn.net/qq_35636311/article/details/78255568