zoukankan      html  css  js  c++  java
  • python3

    给实例动态添加方法,需引入types模块,用其的MethodType(要绑定的方法名,实例对象)来进行绑定;
    给类绑定属性和方法,可以通过 实例名.方法名(属性名) = 方法名(属性值) 来进行绑定。
    给类添加方法,通过@classmethod;给类添加静态方法通过@staticmethod
    import types

    #定义了一个类
    class Person(object):
    num = 0
    def __init__(self, name = None, age = None):
    self.name = name
    self.age = age
    def eat(self):
    print("eat food")

    #定义一个实例方法
    def run(self, speed):
    print("%s在移动, 速度是 %d km/h"%(self.name, speed))

    #定义一个类方法
    @classmethod
    def testClass(cls):
    cls.num = 100

    #定义一个静态方法
    @staticmethod
    def testStatic():
    print("---static method----")

    #创建一个实例对象
    P = Person("老王", 24)
    #调用在class中的方法
    P.eat() # eat food

    #给这个对象添加实例方法
    P.run = types.MethodType(run, P)
    #调用实例方法
    P.run(180) # 老王在移动, 速度是 180 km/h

    #给Person类绑定类方法
    Person.testClass = testClass
    #调用类方法
    print(Person.num) # 0
    Person.testClass()
    print(Person.num) # 100

    #给Person类绑定静态方法
    Person.testStatic = testStatic
    #调用静态方法
    Person.testStatic() # ---static method----
  • 相关阅读:
    武器排序HDU3293:sort
    sata硬盘id
    root sysroot chroot rootfs解析
    软件版本周期
    shell字符串的截取的问题
    游戏脚本
    udevadm使用
    vfat linux 大小写问题
    vmware 虚拟机性能优化
    日期被修改
  • 原文地址:https://www.cnblogs.com/AndyChen2015/p/7409892.html
Copyright © 2011-2022 走看看