Python动态创建类

class Base(object):
    name = "yao"
    age = 23
    def setUp(self):
        if hasattr(self, "name"):
            print "setUp, %s" % getattr(self, "name")

from new import classobj
myClass= classobj("HelloClass", (Base, ), {"***":"boy", "school":"hn"})
myobject = myClass()
myobject.setUp()
print myobject.*** + " ->" + str(myobject.age)
# >>> 
print getattr(myobject, "school")


def initParent():
    globals()['MyChildClass']=type("MyChildClass", (Base, ), {"***":"girl",
        "school":"nn"})

initParent()
myobject = MyChildClass()
myobject.newAttr = "hello"  #动态创建属性

print myobject.***, myobject.school
print getattr(myobject, "newAttr")

class A(MyChildClass):      #MyChildClass就是动态创建的类。
    def testup(self):
        if hasattr(self, "***"):
            print " have *** attritue, %s" % getattr(self, "***")
        
        if hasattr(self, "newAttr"):  #这样的属性就没有了
            print "HAVEing!"
a = A()
a.testup()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值