• 动态绑定允许我们在程序运行的过程中动态给class加上功能,这在静态语言中很难实现


    https://www.liaoxuefeng.com/wiki/

    # 正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,
    # 这就是动态语言的灵活性。先定义class
    class Student(object):
        pass
    
    
    s = Student()
    # 动态给实例绑定一个属性
    s.name = 'Kate'
    
    def set_age(self,age):
        self.age = age
    
    from types import MethodType
    
    s.set_age = MethodType(set_age,s)
    s.set_age(25)
    from types import MethodType
    
    
    # 定义一个函数作为实例方法
    def set_get_diff_page_xpath_res(self, func):
        self.xpath_res = func
    
    
    # 兼容不同页面xpath的类
    class spider_diff_page(object):
        pass
    
    
    instance_page_res = spider_diff_page()
    
    # 给实例绑定一个处理不同页面xpath的方法
    instance_page_res.xpath_res = MethodType(set_get_diff_page_xpath_res, instance_page_res)
    
    
    def deal_diff_page(page):
        return '%s%s' % (page, 'ZEBRA-TEACHER')
    
    
    page = 'amazon.uk'
    instance_page_res.xpath_res(deal_diff_page(page))
  • 相关阅读:
    uniapp版本迭代
    上传图像裁剪功能
    uniapp 复制到剪切板
    uniapp吸顶功能
    地图导航到目的地
    uniapp视频图片上传
    获取昨天今天明天的时间
    【VUE】 前端面试题小结
    vue获取当前时间 实时刷新
    CSS linear-gradient() 函数
  • 原文地址:https://www.cnblogs.com/rsapaper/p/7846407.html
Copyright © 2020-2023  润新知