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

Python 入门第十五讲】OOP(面向对象)思想

数字 12 是一个对象,字符串“Hello, world”是一个对象,列表是一个可以容纳其他对象对象,依此类推。我们一直在使用对象,甚至可能没有意识到这一点。...对象由以下部分组成: 状态:它由对象属性表示。它还反映了对象属性。 行为:它由对象的方法表示。它还反映了一个对象对其他对象的响应。...obj_bird = Bird() obj_spr = sparrow() obj_ost = ostrich() obj_bird.intro() obj_bird.flight() obj_spr.intro...__hiddenVariable) AttributeError: 'MyClass' object has no attribute '__hiddenVariable' 在上面的程序中,我们使用一个对象访问类外部的隐藏变量...Python没有任何东西是真正私有的;在内部,私有方法和属性的名称被动态地破坏和解开,使它们看起来无法通过它们的给定名称访问。

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

Python学习之魔法方法

如果没有兼容旧版本Python代码的需要,我们在编写代码时应将所有类的写为新式类并且使用super函数这样的特性。...在Python3.0中没有"旧式"的类,也不需要侠士的子类化Object或者将元类设置为type(代码起始行__metaclass__=type).那是因为所有的类都是隐式的成为Object的子类。...如果没有明确超类的话,就会直接子类化;否则间接子类化。...再看父类中定义的eat函数,启动eat函数需要设置hungry属性。但不解的是,我们已经继承了鸟的基类BirdBird里也定义了hungry为什么不起作用呢。...那是因为hungry属性是在当父类调用自己的构造函数时才起作用。由此可见,SingBird继承了Bird的所有功能,却未触发Bird的初始化功能。

47420

Python学习笔记(七)·面向对象高级编程

' 由于'score'没有被放到__slots__中,所以不能绑定score属性,试图绑定score将得到AttributeError错误。...但是,上面的调用方法又略显复杂,没有直接用属性这么直接简单。 有没有既能检查参数,又可以用类似属性这样简单的方式来访问类的变量呢?对于追求完美的 Python 程序员来说,这是必须要做到的!...,然后,Python 的 for 循环就会不断调用该迭代对象的__next__()方法拿到循环的下一个值,直到遇到StopIteration错误时退出循环。...AttributeError: 'Student' object has no attribute 'score' 错误信息很清楚地告诉我们,没有找到score这个 attribute。...要避免这个错误,除了可以加上一个score属性外,Python 还有另一个机制,那就是写一个__getattr__()方法,动态返回一个属性

47920

Python面向对象:杂七杂八的知识点

def quacks(self): print("bird quacks") 对于Python来说,鸭子模型的意思是:只要某个地方需要调用Duck的walk、swim、quacks方法,...私有属性 python没有private关键字来修饰属性使其变成私有属性,但是带上双下划线前缀的属性没有后缀下划线的属性(__X)可以认为是私有属性。...__slots__定义后,对象默认就没有了__dict__属性 但可以将__dict__放进__slots__的范围内来允许__dict__ 还有几个注意点在下面的示例中解释 例如: class...__dict__.keys()) # 报错,对象没有__dict__属性 可以将__dict__放进__slots__中,使得对象可以带有属性字典。...再考虑一个问题,如果cls1中没有属性x,但它继承自cls0,而cls0有x属性,那么,c3.x取哪个属性

90321

一文教你读懂 Python 中的异常信息

Python Traceback 信息一览 每个 Python 的 Traceback 信息都有几个重要的部分。下图显示了各个组成部分: 蓝框:Traceback 的最后一行为错误消息行。...AttributeError 当你访问一个对象属性,但是这个属性没有在这个对象定义的时候,就会引发 AttributeError。...' object has no attribute 'b' AttributeError错误消息行告诉我们特定对象类型(在本例中为 int)没有访问的属性, 在这个例子中属性为 b。...: 'tuple' object has no attribute 'append' 这里尝试给 a_list 对象进行 append 操作但是引发了异常, 这里的错误信息说,tuple 对象没有...错误消息行反映了这些差异。 最后一个示例尝试在 int 上调用 len ()。 错误消息行告诉我们不能使用 int 执行此操作。

2.4K10

流畅的 Python 第二版(GPT 重译)(四)

在运行时,Python 不关心声明的类型。它只使用鸭子类型。Mypy 在alert_bird中标记了一个错误,但在运行时使用daffy调用它是没有问题的。...AttributeError: 'Bird' object has no attribute 'quack' ① Mypy 无法检测到这个错误,因为alert中没有类型提示。...③ 自从示例 8-4 以来,Mypy 一直在告诉我们alert_bird函数的主体是错误的:“Bird"没有属性"quack”。...即使有时候能够运行,alert_bird函数的命名是错误的:它的主体确实需要支持.quack()方法的对象,而Bird没有这个方法。 在这个愚蠢的例子中,函数只有一行。...在第二十四章中,示例 24-6 在__flag_unknown_attrs中使用NoReturn,这是一个旨在生成用户友好和全面错误消息的方法,然后引发AttributeError

31710

一文搞懂 Python 私有属性 & 私有方法

从上图运行结果可以看出,第11行,即在对象外部访问对象的私有属性 __salary 时,提示 AttributeError 错误,Staff 对象 zhangsan 没有属性 __salary。...__salary属性的引用,做相应的修改,看如下图所示的运行结果。 可以从运行结果看出,这种非私有属性在外部的调用是正常的,没有提示 AttributeError 错误。 (2)....从上图运行结果可以看出,第11行,即在对象外部访问对象的私有方法 __secret(self) 时,提示 AttributeError 错误,Staff 对象 zhangsan 没有 __secret...可以从运行结果看出,这种非私有方法在外部的调用是正常的,没有提示 AttributeError 错误。 (3). 从下图可以看出,在对象内部私有方法与私有属性是可以被调用的。..._Staff__secret()) 运行结果如下图所示 控制台没有抛任何的异常,之前的提示 AttributeError 错误没有了。

1.6K10

【已解决】PythonAttributeError: ‘NoneType‘ object has no attribute ‘X‘ 报错

同时欢迎大家关注其他专栏,我将分享Web前后端开发、人工智能、机器学习、深度学习从0到1系列文章 一、Bug描述 在Python编程中,AttributeError是一个常见的错误,它通常发生在尝试访问一个对象属性或方法时...,但该对象没有这个属性或方法。...特别地,AttributeError: ‘NoneType’ object has no attribute 'X’这个错误表明我们尝试访问的属性X属于一个None类型的对象。...None,没有属性x 原因二:错误的变量初始化 在某些情况下,变量可能没有被正确初始化,或者被错误地设置为None。...错误示例: obj = None print(obj.x) # 引发AttributeError 原因三:异常处理不当 在处理可能抛出异常的代码时,如果没有正确捕获异常,并且在异常发生后尝试访问对象属性

76220

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

如果我们传递给这些函数或方法的数组对象为None,就会出现"AttributeError: 'NoneType' object has no attribute 'array_interface'"的错误...这是因为None是Python中表示空对象的特殊值,它没有__array_interface__属性,而NumPy函数和方法需要使用这个属性来进行数组操作。...总结: 当出现"AttributeError: 'NoneType' object has no attribute 'array_interface'"的错误时,我们应该检查传递给NumPy函数和方法的数组对象是否为...在Python中,​​None​​​是一个特殊的常量值,用于表示一个空的或缺失的对象。它被视为一个NoneType的实例,表示"没有"或"无"。...下面是关于​​​None​​的一些重要特点和使用情况:表示空对象:​​None​​在Python中用于表示没有指向任何对象的情况。

61100

【已解决】AttributeError: ‘str‘ object has no attribute ‘decode‘(图文教程)

首先我们需要知道AttributeErrorPython中是一种常见的错误,它发生在你尝试访问一个对象属性或方法,但该对象没有这个属性或方法时。...对于’str’ object has no attribute 'decode’这个错误,它意味着你正在尝试在一个字符串对象上调用decode方法,但字符串本身并没有这个方法。...然而,在Python 3中,由于字符串已经是Unicode,所以没有decode方法,只有encode方法用于将字符串编码为字节字符串。 划重点,你需要先知道你是python2还是3进行的代码编写。...-8') except AttributeError as e: print(f"发生错误: {e}") 方案二:错误使用decode(代码示例) 如果在Python 3中错误地尝试使用decode...,将会得到AttributeError: # Python 3中的错误示例 try: unicode_string = "hello".decode('utf-8') except AttributeError

31810

五、处理地理数据异常【ArcGIS Python系列】

对于Python程序的通用错误 在运行ArcPy程序中,大多数异常都是Python产生的: 语法错误(SyntaxError):代码不符合Python语法规则,通常是由于拼写错误、缺少冒号、括号不匹配等引起的...名称错误(NameError):尝试使用一个未定义的变量或函数名称。 类型错误(TypeError):操作或函数应用于不适当的类型的对象。...值错误(ValueError):传递给函数的参数类型正确,但是值不合适。 属性错误AttributeError):尝试访问对象没有属性。...异常处理错误(ExceptionHandlingError):在异常处理语句中出现错误,例如错误的语法或逻辑。 这只是一些常见的错误异常,实际上Python还有很多其他的异常类型。...在编写代码时,应该注意捕获和处理这些异常,以便更好地调试和处理错误。 捕捉ArcPy工具的错误 当地理处理工具写入错误消息时,ArcPy将生成系统错误

22110

五、处理地理数据异常【ArcGIS Python系列】

对于Python程序的通用错误 在运行ArcPy程序中,大多数异常都是Python产生的: 语法错误(SyntaxError):代码不符合Python语法规则,通常是由于拼写错误、缺少冒号、括号不匹配等引起的...名称错误(NameError):尝试使用一个未定义的变量或函数名称。 类型错误(TypeError):操作或函数应用于不适当的类型的对象。...值错误(ValueError):传递给函数的参数类型正确,但是值不合适。 属性错误AttributeError):尝试访问对象没有属性。...异常处理错误(ExceptionHandlingError):在异常处理语句中出现错误,例如错误的语法或逻辑。 这只是一些常见的错误异常,实际上Python还有很多其他的异常类型。...在编写代码时,应该注意捕获和处理这些异常,以便更好地调试和处理错误。 捕捉ArcPy工具的错误 当地理处理工具写入错误消息时,ArcPy将生成系统错误

17910

python异常报错详解

断言语句失败 AttributeError 对象没有这个属性 EOFError 没有内建输入,到达EOF 标记 EnvironmentError 操作系统错误的基类 IOError 输入/输出操作失败...) KeyError 映射中没有这个键 MemoryError 内存溢出错误(对于Python 解释器不是致命的) NameError 未声明/初始化对象 (没有属性) UnboundLocalError...当使用2元组创建此类型的异常时,第一个项目在实例的errno属性上可用(假定为错误编号),第二个项目可用于该 strerror属性(通常是关联的错误消息)。元组本身也可以在args属性上使用。...异常AttributeError 属性引用(请参阅属性引用)或赋值失败时引发。(当一个对象根本不支持属性引用或属性赋值时,会TypeError被提出。)...确保报告Python解释器的版本(sys.version它也是在交互式Python会话开始时打印的),确切的错误消息(异常关联值)以及触发错误的程序源可能的可能。

4.6K20
领券