闭包调用时:AttributeError: ‘function‘ object has no attribute ‘xx‘

2023-05-16

目录

      • 问题可能的出处:
      • 解释

问题可能的出处:

1、闭包调用闭包内的某个属性报错
2、调用函数内部的属性
出处1就是根本原因还是2引起的

解释

  • 需要理解下当类被装饰器修饰后,类已经变成了闭包内返回的一个函数。
def counter(cls):
    obj_list = []
    def wrapper(*args, **kwargs):
        new_obj = cls(*args, **kwargs)
        obj_list.append(new_obj)
        print("class:%s'object number is %d" % (cls.__name__, len(obj_list)))
        return new_obj
    return wrapper

@counter
class my_cls(object):
    STATIC_MEM = 'This is a static member of my_cls'
    def __init__(self, *args, **kwargs):
        print(self, args, kwargs)
        print(my_cls.STATIC_MEM)


# <function counter.<locals>.wrapper at 0x00000179D6C04158>
print(my_cls)

# AttributeError: 'function' object has no attribute 'STATIC_MEM'
print(my_cls())

解决办法:print(my_cls.STATIC_MEM)修改为print(self.STATIC_MEM)

  • 根本原因是因为虽然函数是对象,但是,函数内属性无法调用,见下
def my_cls():
    STATIC_MEM = 'This is a static member of my_cls'
    
# AttributeError: 'function' object has no attribute 'STATIC_MEM'
print(my_cls.STATIC_MEM)

参考:
理解Python闭包概念.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

闭包调用时:AttributeError: ‘function‘ object has no attribute ‘xx‘ 的相关文章

  • 如何在 jQuery 中检查 null 对象

    我正在使用 jQuery 我想检查页面中是否存在某个元素 我写了以下代码 但它不起作用 if btext i null alert btext i text btext i text Branch i 如何检查元素是否存在 检查jQuery
  • Angular 4 默认单选按钮默认选中

    我试图根据从对象获得的值将单选按钮标记为默认值 它可以是 True 或 False 根据选项 我可以做什么来标记为默认单选按钮
  • 在 Inno Setup 中实现脚本常量时出现“预期标识符”或“原型无效”

    因此 鉴于此功能 我在GetRoot ROOTPage Values 0 线 我希望它告诉我ROOTPage没有定义 const DefaultRoot C IAmGRoot Var ROOTPage TInputQueryWizardPa
  • 在读取之前设置未定义的 javascript 属性

    var tr tr SomeThing SomeThingElse console log tr SomeThing SomeThingElse console log tr Other undefined tr get function
  • JavaScript 中的全局函数

    我是 js 新手 试图了解全局和私有函数 我了解全局变量和局部变量 但是如果我有一个名为test html和 2 个名为test1 js and test2 js 现在我包括test1 js and test2 js in test htm
  • “对象不是函数” - onclick 事件

    在开始之前 不 我没有发现分号的问题 并且我没有向函数传递任何值 当我尝试从控制台执行函数 login 时 它工作得很好 但是当我单击 HTML 输入按钮来调用它时 我收到 Uncaught TypeError object is not
  • PHP 函数可以接受无限数量的参数吗? [复制]

    这个问题在这里已经有答案了 在 PHP 中有类似的函数unset 支持我们向它们抛出的任意数量的参数 我想创建一个类似的函数 它能够接受任意数量的参数并处理所有参数 任何想法 如何做到这一点 在 PHP 中 使用该函数func get ar
  • 不允许从函数返回函数。我怎么能?

    8 3 5 8 Functions dcl fct says 函数的返回类型不得为 类型数组或function 尽管它们可能具有指针类型的返回类型或对此类事物的引用 为什么规则这么明确 是否有某种语法甚至允许返回函数而不是函数指针 我是否误
  • 同一参数有两个不同的名称有什么意义?

    func mapEachElement inArray arr Int withFunc aFunc Int 为什么会有 inArray 然后 arr 有什么意义 对于 withFunc 和 aFunc 也是如此 它使代码变得更加复杂并且阅
  • 如何正确使用Javascript“导出”和“导入”功能?

    我想将函数从 lib js 文件导出到 main js 文件 我有 lib js export const sqrt Math sqrt export function square x return x x export function
  • 什么样的函数被认为是“可组合的”?

    维基百科文章函数组合 计算机科学 https en wikipedia org wiki Function composition computer science says 就像数学中通常的函数组合一样 每个函数的结果作为下一个函数的参数
  • 从平面数组创建嵌套对象

    我目前有一个对象数组 我正在尝试将其重塑为嵌套对象ID作为对象键 并将其作为目标ID与parentid 如果不是 0 我尝试了几种方法 但我很挣扎 主要绊脚石for me是超过一两层深度的任何东西 理想情况下 我需要它是动态的 这样它就可以
  • 将数组传递给函数名称冲突

    Specs GNU bash 版本 3 1 17 无法升级 Premise 我一直在摆弄数组 我想知道是否有任何方法可以让函数的本地变量与所述函数外部的数组同名 Example 在下面的示例中 我将尝试显示该问题 Working bin b
  • 如何动态创建新属性

    如何从对象方法内的给定参数创建属性 class Foo public function createProperty var name val here how can I create a property named var name
  • 在这种情况下 b 是标量对象吗?

    include
  • 如何确定函数是否不返回任何内容?

    有没有办法在 PHP 中使用反射或其他方法来做到这一点 function a return null function b a a null b b null 如果您没有显式返回某些内容 则函数将返回null默认情况下 这就是 PHP 中函
  • 如何从 Xib 文件加载自定义 UITableViewCell?

    问题很简单 如何加载自定义UITableViewCell来自 Xib 文件 这样做可以让您使用 Interface Builder 来设计您的单元 由于内存管理问题 答案显然并不简单 这个线程 https stackoverflow com
  • swift 中闭包和函数作为参数的区别

    我有将近 4 年的 Objective C 经验 并且是 swift 的新手 我试图从 Objective C 的角度理解 swift 的概念 所以如果我错了 请指导我 在目标 c 中 我们有块 可以稍后异步执行的代码块 这绝对是完全合理的
  • C语言声明数组没有初始大小

    编写一个程序来操纵温度详细信息 如下所示 输入要计算的天数 主功能 输入摄氏度温度 输入功能 将温度从摄氏度转换为华氏度 独立功能 查找华氏度的平均温度 我怎样才能在没有数组初始大小的情况下制作这个程序 include
  • 在查询中实现函数调用(分组运行总计)

    我有一个函数叫做fxGroupedRunningTotal fxGRT 和查询 总计 我想在 Totals 中调用 fxGRT 以便获得一个显示分组运行总计的列 我只能通过导入总计查询来测试 fxGRT 使用总计并调用 fxGRT 的查询

随机推荐

  • caffe layer层详解

    1 基本的layer定义 xff0c 参数 1 基本的layer定义 xff0c 参数 如何利用caffe定义一个网络 xff0c 首先要了解caffe中的基本接口 xff0c 下面分别对五类layer进行介绍 Vision Layers
  • caffe编译中的python问题

    问题 usr include boost python detail wrap python hpp 50 23 fatal error pyconfig h No such file or directory 解决方案 make clea
  • latex图像注释位置

    latex图像注释的位置在左边 不知道谁把模板里的 usepackage caption 给注释掉了
  • pytorch pretrained model

    pytorch pretrained model two methods method 1 比较大小 self span class token punctuation span model span class token operato
  • nodejs之minimist中间件使用

    minimist是nodejs的命令行参数解析工具 xff0c 因其简单好用 xff0c 轻量等特性 xff0c 所以用户使用较多 特性 xff1a short options long options Boolean 和 Number类型
  • RNA-seq 保姆教程:差异表达分析(一)

    介绍 RNA seq 目前是测量细胞反应的最突出的方法之一 RNA seq 不仅能够分析样本之间基因表达的差异 xff0c 还可以发现新的亚型并分析 SNP 变异 本教程 1 将涵盖处理和分析差异基因表达数据的基本工作流程 xff0c 旨在
  • 腾讯、阿里云服务器安装java全流程(yum安装java超简单详细版)

    有些服务器中自带了java xff0c 但不是你想要的版本的话 xff0c 可以先卸载掉 xff0c 然后更换想要的ava版本 因为是有网环境 xff0c 可以使用yum安装 无网环境可以参考我写的另一篇文章 xff1a linux无网环境
  • 某个牛人做WINDOWS系统文件详解

    某个牛人做WINDOWS系统文件详解 超牛 很详细介绍WINDOWS系统文件用途 想各位保存一份以后说定会有用 A ACCESS CHM Windows帮助文件 ACCSTAT EXE 辅助状态指示器 ADVAPI32 DLL 高级Win3
  • Nginx 流量统计分析

    目录 程序简介输出结果环境程序要求例子代码 程序简介 通过分析nginx日志 xff0c 统计出nginx流量 xff08 统计nginx日志中 body bytes sent 字段 xff09 xff0c 能自定义时间间隔 xff0c 默
  • 融资租赁业务系统(财务中台)

    融资租赁业务系统 财务中台 产品白皮书 版本号 xff1a V1 1 李雷 微信号 xff1a yanan122914 平台概述 融资租赁财务中台产品是一套专门针对融资租赁行业设计的融资租赁财务统一解决方案 对租赁公司传统的大单回租 直租
  • Session详解,学习 Session对象一篇文章就够了

    目录 1 Session概述 2 Session原理 3 Session使用 3 1 获取Session 3 2 Session保存数据 3 3 Session获取数据 3 4 Session移除数据 4 Session与Request应用
  • spring框架--全面详解(学习笔记)

    目录 1 Spring是什么 2 Spring 框架特点 3 Spring体系结构 4 Spring开发环境搭建 5 spring中IOC和DI 6 Spring中bean的生命周期 7 Spring Bean作用域 8 spring注解开
  • Caused by: java.lang.NoClassDefFoundError: io/seata/spring/annotation/datasource/SeataDataSourceBean

    在使用Spring Boot整合Seata实现分布式事务的时候报了这个错 当时在pom xml引入的spring cloud alibaba dependencies依赖包是2 2 2 RELEASE lt dependency gt lt
  • setup maven plugin connection

    setup maven plugin connection discover and map eclipse plugins to maven plugin goal executions 今天在创建maven工程时遇到了一个问题 工程在创
  • qt生成的exe到指定路径加载DLL文件

    qt编译生成的exe程序在打包依赖文件后 xff0c 如果同时又有其他dll文件时 xff0c 目录会看起来非常杂乱 我们可以通过将依赖文件放到某个路径下 xff0c 让exe程序在指定路径下加载 xff0c 此时需要用到qt 的qt co
  • PowerShell格式化显示(Format-Table Format-List)

    格式化 Format Format Wide Format List 常用 xff0c 显示的更加详细 Format Table 常用 AutoSize xff08 让表格更加紧凑 xff09 Format Custom 例子 xff1a
  • 使用VBA调用jar传递参数,并获取返回值

    目录 VBA代码 Java代码 运行效果 Excel Log效果 xff08 通过VBA调用jar后 xff0c 运行 xff0c 生成的Log xff09 课题 课题原因 xff08 直接原因 xff09 log4j的配置 课题验证 课题
  • 生产者与消费者模型&信号量

    6 生产者与消费者模型 6 1 123规则 1个线程安全的队列 只要保证先进先出的特性的数据结构都可以称之为队列 该队列需要保证互斥 xff0c 即同一时刻只能有一个线程对该安全队列进行操作还需要保证同步 xff0c 即生产者往安全队列生产
  • Ubuntu下面包依赖损坏的解决unmet dependencies

    2017 1 4 更新 在原来的文章中提到过使用gzip压缩changelog得到changelog debian gz 然后覆盖掉原来的 从而达到欺骗系统认为的软件包的版本问题 但是这样的话需要自己手动定位找到并且压缩 像pulseaud
  • 闭包调用时:AttributeError: ‘function‘ object has no attribute ‘xx‘

    目录 问题可能的出处 xff1a 解释 问题可能的出处 xff1a 1 闭包调用闭包内的某个属性报错 2 调用函数内部的属性 出处1就是根本原因还是2引起的 解释 需要理解下当类被装饰器修饰后 xff0c 类已经变成了闭包内返回的一个函数