為類動態新增屬性和方法

2021-08-25 19:37:02 字數 1135 閱讀 1782

#動態新增屬性

import types

class person(object):

country = 'china'

def __init__(self,name):

self.name=name

#動態刪除屬性和方法

#del

#delattr

p1=person('zhiliao')

print(p1.name)

# del p1.name

delattr(p1,name)

print(p1.name)

#動態新增例項方法

@staticmethod

def run():

print('正在奔跑')

person.run=run

person.run()

#動態新增類方法

@classmethod

def run(cls):

print('%s 在奔跑'%cls.country)

person.run=run

person.run()

#動態新增例項方法

def run(self):

print('{} 在奔跑'.format(self.name))

p1=person(name='zhiliao')

p1.run=types.methodtype(run,p1)

p1.run()

#動態新增屬性

p=person('zhiliao')

p.age=18

print(p.age)

#setattr

# setattr(p,'age',18)

print(p.age)

print(p.__dict__)

# print(p.__class__)

# print(p.__dir__())

print(p.__init__('cyy'))

print(p.__dict__)

print(hasattr(p,'name'))

if hasattr(p,'name'):

print('true')

else:

print('false')

Runtime 動態建立類新增屬性和方法

void createclass myclasstest是已經實現的函式,v 這種寫法見引數型別連線 class addmethod myclass,selector myclasstest imp myclasstest,v 註冊這個類到runtime系統中就可以使用他了 objc registe...

動態新增屬性和方法

import types 新增方法的庫 新增動態方法 def lookstate self print 使用者 使用者名稱 年齡 密碼 format self.name,self.admin,self.age,self.password pass 動態新增乙個類方法 classmethod def ...

python動態新增屬性和方法

class person def init self,name,age self.name name self.age age p1 person ff 28 print p1.name,p1.age 給例項物件動態新增 屬性 p1.female print p1.給類動態新增屬性 person.h...