首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python『学习之路03』面向对象

self就相当于是谁 # ----- >> 构造函数 # ----- >> 在创建对象时完成数据初始化....和成员变量n是没有关系的,所以看到的结果是,r1打印了修改后的值,r2中还是成员变量值 # print(r2.n,r2.name) # 123 paofu # 修改成员变量n: 注意,变量的读取遵循就近原则...,在前面过程中,我们调用实例变量r1修改成员变量n,我们知道他的原理是把n=xxx,复制了一份到实例变量r1中 # 所以当Role在取修改n的值时,r1是不会受影响的,因为它读取的是自己实例变量中的n,...你成员变量的n在怎么变,对我实例变量来说都没有任何影响,而r2中没有这个实例变量 # 所以读取的还是成员变量中的n,所以当成员变量的值发生改变后,r2.n 也发生了改变 # Role.n = "ABC...,回收所有内存空间时执行这个方法 # print(r2.n,r2.name) # ABC paofu # 类变量 --- >> 公有属性,节省内存空间 # 构造函数 --- >> 创建对象时完成数据初始化

28430

【已解决】Python 中 AttributeError: ‘NoneType‘ object has no attribute ‘X‘ 报错

同时欢迎大家关注其他专栏,我将分享Web前后端开发、人工智能、机器学习、深度学习从0到1系列文章 一、Bug描述 在Python编程中,AttributeError是一个常见的错误,它通常发生在尝试访问一个对象的属性或方法时...二、定位报错原因 原因一: 返回None的函数调用 如果一个函数预期应该返回一个对象,但实际上返回了None,然后我们尝试访问这个返回值的属性,就会引发这个错误。...None,没有属性x 原因二:错误的变量初始化 在某些情况下,变量可能没有被正确初始化,或者被错误地设置为None。...错误示例: obj = None print(obj.x) # 引发AttributeError 原因三:异常处理不当 在处理可能抛出异常的代码时,如果没有正确捕获异常,并且在异常发生后尝试访问对象的属性...在类型判断错误的情况下,可能会错误地假设一个None类型的变量是另一个类型的对象。

2.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    解决AttributeError: collections.defaultdict object has no attribute iteritems

    问题描述当我们在使用​​iteritems​​方法来遍历​​collections.defaultdict​​对象时,可能会遇到以下错误:plaintextCopy codeAttributeError...而​​collections.defaultdict​​是Python字典的一个子类,继承了Python字典的所有方法和属性,因此也没有​​iteritems​​方法。...解决方案二:使用​​​dict()​​函数 另外一个解决方案是使用​​dict()​​函数来转换​​collections.defaultdict​​对象为普通的字典对象,然后再使用​​iteritems​​..., value)通过使用​​dict()​​函数,我们将​​collections.defaultdict​​对象转换为常规字典,然后使用​​iteritems​​方法进行遍历。...在遍历过程中,我们分别将键和值分别赋值给​​key​​和​​value​​变量进行处理。

    41710

    解决AttributeError: ‘NoneType‘ object has no attribute ‘array_interface‘

    这个错误通常是由于数组对象为None引起的。在本篇文章中,我们将介绍这个错误的原因,并提供解决方法。错误原因当我们使用NumPy的函数或方法时,需要将数据传递给这些函数或方法进行处理。...这是因为None是Python中表示空对象的特殊值,它没有__array_interface__属性,而NumPy函数和方法需要使用这个属性来进行数组操作。...它可以用作默认值、函数返回值、变量初始化等地方,表示该位置没有合适的值。...:在函数中,当没有明确的返回值时,通常会默认返回​​None​​​。...None空容器:当一个容器变量没有元素时,通常会将其初始化为​​None​​,而不是空列表、字典或其他容器类型。

    1.1K00

    Python内置(4)类相关的内置

    现在第二个object也没有指向它的东西,所以也将被垃圾收集丢掉。 为了能够验证所有这些,我们可以使用内置函数id。id 获得对象在内存中的确切位置,表示为数字。...dir and vars: 一切都是字典 你有没有想过Python如何存储对象,它们的变量及方法?我们知道所有对象都有自己的属性和方法,但是Python究竟如何跟踪它们呢?...property @property是当您要为对象中的属性定义获取器(getter)和设置器(setter)时要使用的修饰符。...getters 和 setter 提供了一种在尝试读取或修改对象的属性时添加验证或运行一些额外代码的方法。...这是通过将属性转换为一组函数来完成的:一个函数在您尝试访问属性时运行,另一个函数在您尝试更改其值时运行。

    2.4K30

    有史以来最全的异常类讲解没有之一!爆肝3万字,终于把Python的异常类写完了!最全Python异常类合集和案例演示,第一部分

    ZeroDivisionError 除(或取模)零 (所有数据类型) AssertionError 断言语句失败 AttributeError 对象没有这个属性 EOFError 没有内建输入,到达EOF...未声明/初始化对象 (没有属性) UnboundLocalError 访问未初始化的本地变量 ReferenceError 弱引用(Weak reference)试图访问已经垃圾回收了的对象 RuntimeError...AttributeError AttributeError 是 Python 中的一个内置异常,它会在尝试访问对象的属性或方法时,如果该对象没有这样的属性或方法,则被触发。...没有 age 属性,尝试访问它将触发 AttributeError 异常。...在实际开发中,当遇到 AttributeError 异常时,应该检查代码中是否有拼写错误,或者是否错误地尝试访问了一个不应该存在的属性或方法。

    15810

    python简明笔记

    如果没有指定 size 或者指定为负数,就会读取并返回整个文件。当文件大小为当前机器内存两倍时,就会产生问题。反之,会尽可能按比较大的 size 读取和返回数据。...True >>> getattr(obj, 'y') # 获取属性'y' 19 >>> obj.y # 获取属性'y' 19 如果试图获取不存在的属性,会抛出AttributeError的错误: >>>...'score'没有被放到__slots__中,所以不能绑定score属性,试图绑定score将得到AttributeError的错误。...但是,上面的调用方法又略显复杂,没有直接用属性这么直接简单。 有没有既能检查参数,又可以用类似属性这样简单的方式来访问类的变量呢?对于追求完美的Python程序员来说,这是必须要做到的!...如果你把对象看成函数,那么函数本身其实也可以在运行期动态创建出来,因为类的实例都是运行期创建出来的,这么一来,我们就模糊了对象和函数的界限。 那么,怎么判断一个变量是对象还是函数呢?

    2.2K90

    9 Python 基础: 手把手带你梳理对象、继承与多态知识点

    True >>> getattr(obj, 'y') # 获取属性'y' 19 >>> obj.y # 获取属性'y' 19 如果试图获取不存在的属性,会抛出AttributeError的错误: >>>...fp对象是否存在read方法,如果存在,则该对象是一个流,如果不存在,则无法读取。...但是,上面的调用方法又略显复杂,没有直接用属性这么直接简单。 有没有既能检查参数,又可以用类似属性这样简单的方式来访问类的变量呢?对于追求完美的Python程序员来说,这是必须要做到的!...AttributeError: 'Student' object has no attribute 'score' 由于'score'没有被放到__slots__中,所以不能绑定score属性,试图绑定...score将得到AttributeError的错误。

    1.1K50

    Python学习(一)函数定义、使用与嵌套

    以及Class中的函数里面,访问对应的变量(读取或者写入),以及调用对应的函数时,都是 ①self.valueName valueName:表示self对象,即实例的变量。...与其他的,Class的变量,全局的变量,局部的变量,是相对应的。 ②self.function()的形式。 function:表示是调用的是self对象,即实例的函数。...调用对应函数(function):Instance.function(),即执行对应的动作 -> 而需要访问实例的变量和调用实例的函数,当然需要对应的实例Instance对象本身 -> 而Python...函数中,正确的初始化实例变量,则会导致后续没有变量可用,因而出现AttributeError的错误: name = "whole global name"; class Person: def...(实例化)的init函数中,没有给self.name设置值,使得实例中,根本没有name这个变量,导致后续再去访问self.name,就会出现AttributeError的错误了。

    1.2K80

    AttributeError: ‘str‘ Object Has No Attribute ‘x‘:字符串对象没有属性x的完美解决方法

    AttributeError: ‘str’ Object Has No Attribute ‘x’:字符串对象没有属性x的完美解决方法 大家好,我是默语,擅长全栈开发、运维和人工智能技术。...当你试图访问一个对象的属性,但该对象并不具备这个属性时,就会抛出这个错误。...错误示例 当我们试图访问一个字符串对象的不存在属性时,就会出现AttributeError。例如: my_string = "Hello, World!"...错误的成因 这个错误通常有以下几种成因: 2.1 访问不存在的属性 ❌ Python字符串对象没有名为x的属性。当你尝试访问一个字符串对象的不存在属性时,就会抛出这个错误。...你可以使用dir()函数查看对象的所有属性和方法: print(dir(my_string)) 3.2 变量类型检查 使用isinstance()函数检查变量类型,确保你正在访问的是正确类型的对象。

    27810

    Python 学习笔记之类与实例

    __class__ Out[1]: False 函数内定义的类型对象,在所有实例死亡后,会被垃圾回收。...__init__ at 0x109d272f0>, 'get_y': function B.get_y at 0x109d27378>, ... } 当通过实例或类访问某个成员时,会从当前对象开始...因为无论是修改还是删除都无法截获,由此可能引发意外错误。因为语言没有严格意义上的访问权限设置,所以只好将它们隐藏起来。 如果成员名字以双下划线开头,但没有以双下划线结尾,那么编译器会自动对其重命名。...实例方法 实例方法与实例对象绑定,在其参数列表中,将绑定对象作为第一参数,以便在方法中读取或修改数据状态。在以实例引用调用方法时,无须显式传入第一实参,而由解释器自动完成。...__ new __:构造方法,创建对象实例 __ init __:初始化方法,设置实例的相关属性 __ del __:析构方法,实例被回收时调用 创建实例时,会先调用析构方法和初始化方法。

    43510

    AttributeError: ‘NoneType‘ Object Has No Attribute ‘x‘ — 完美解决方法 ️✨

    引言 在Python中,NoneType 是一个特殊的数据类型,表示对象为空。AttributeError 则是在尝试访问对象的一个不存在的属性时抛出的错误。...当你试图访问 None 类型对象的属性时,Python会抛出 AttributeError,提示该对象没有所尝试访问的属性。这类错误非常常见,尤其是在数据处理、函数返回值处理等场景中。...在Python中,NoneType 是Python内置类型 None 的类型。None 通常用于表示缺少值或未初始化的变量。当一个函数没有显式地返回值时,它会隐式地返回 None。...如何避免和处理 AttributeError 3.1 检查函数返回值 在访问对象属性前,首先检查对象是否为 None。这样可以避免不必要的错误。...表格总结 解决方法 描述 检查返回值 在访问对象属性前,确认对象是否为 None 使用默认值 当函数或方法可能返回 None 时,提供默认值来避免错误 使用 try-except 结构 捕获 AttributeError

    47110

    【十三】python面向对象之类和对象

    3、类的作用 3.1、属性引用(类名.属性) (1)引用类的数据属性(类名.变量名) 1 print(Garen.camp) # 引用类的数据属性,该属性与所有对象/实例共享 输出结果为:...1 Demacia  (2)引用类的函数属性(类名.函数名) 1 print(Garen.attack) #引用类的函数属性,该属性也共享 输出结果为: 1 function Garen.attack...4、抽象类 如果说类是从一堆对象中抽取相同的内容而来的,那么抽象类就是从一堆类中抽取相同的内容而来的,内容包括数据属性和函数属性。...("attack %s" % enemy) g1=Garen('草丛伦') 1、对象的属性引用和绑定方法 (1)对象(实例)只有一种作用:属性引用 格式: 实例名.类的变量名..._ (4)对象(实例)的绑定方法 对象本身只有数据属性,但是python的class机制会将类的函数绑定到对象上,称为对象的方法,或者叫绑定方法。

    29740

    获取对象信息

    type(None) #输出: type(abs) #输出:function_or_method'>,如果一个变量指向函数...有时仅仅把属性和方法列出来是不够的,需配合使用getattr()、setattr()以及hasattr() hasattr():判断对象是否包含某属性或方法,访问对象某属性或方法时,若不确定对象是否包含...,如果没有,则返回指定默认值,否则直接通过"对象.属性或方法"的方式会报错 setattr():给对象设置某属性或方法,并赋值   只有在不知道对象信息的时候,才会去获取对象信息,如果可以通过"对象....属性",就不要通过 getattr()方式获取属性值   假设希望从文件流fp中读取图像,首先要判断该fp对象是否存在read方法   如果存在,则该对象是一个流,如果不存在,则无法读取,可通过hasattr...print(obj.y) #输出:19 getattr(obj, 'z') #输出:报错,如果试图获取不存在的属性,会抛出AttributeError的错误,对象obj没有属性

    1.8K50

    python之内置函数

    4、参数flag和dont_inherit:这两个参数暂不介绍 dir([object]) 1、不带参数时,返回当前范围内的变量、方法和定义的类型列表;2、带参数时,返回参数的属性、方法列表。...或False的函数,可以为None2、参数iterable:序列或可迭代对象 getattr(object, name [, defalut]) 获取一个类的属性 globals() 返回一个描述当前全局符号表的字典...(s) 返回集合长度 locals() 返回当前的变量列表 map(function, iterable, …) 遍历每个元素,执行function操作 memoryview(obj) 返回一个内存镜像类型的对象...]]) file类型的构造函数,作用为打开一个文件,如果文件不存在且mode为写或追加时,文件将被创建。...input([prompt]) 获取用户输入推荐使用raw_input,因为该函数将不会捕获用户的错误输入 open(name[, mode[, buffering]]) 打开文件与file有什么不同?

    28930

    你必须要了解了知识-python反射机制

    反射 反射机制就是在运行时,动态的确定对象的类型,并可以通过字符串调用对象属性、方法、导入模块,是一种基于字符串的事件驱动。...This is done by calling getattr(obj, name) and catching AttributeError. """ pass 通过源码注释我们知道,它返回对象是否具有指定名称的属性...getattr() 有了判断属性是否存在的函数,那么就得有获取属性的函数了 def getattr(object, name, default=None): # known special case...test函数,而且getattr获取到的是函数对象,也没有调用它,通过我们主动执行func()才执行了a.test()函数,这样相比于exec和eval就灵活了许多。...no attribute 'comm_function' 意思是comm模块没有comm_function这个属性,为什么是comm模块而不是function呢?

    1.2K21
    领券