摘要: 那种仅限从一个对象内部访问的“私有”实例变量在 Python 中并不存在。 但是,大多数 Python 代码都遵循这样一个约定:以一个下划线开头的名称 (例如 _spam) 应该被当作是 API 的非公有部分 (无论它是函数、方法或是数据成员)。 这应当被视为一个实现细节,可能不经通知即加以改变。 阅读全文
posted @ 2022-08-29 14:06 python心蓝 阅读(74) 评论(0) 推荐(0) 编辑
摘要: python是一门动态语言,严格的来说python不存在多态。 def bark(animal): animal.bark() 上面的函数bark接收一个对象,并调用了对象的bark方法。对于python来说只要传入的对象有bark方法这个函数就可以执行,而不必去检查这个对象的类型。 class A 阅读全文
posted @ 2022-08-29 14:05 python心蓝 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 重写了父类方法后如果又要调用父类的方法怎么办呢? 还记得调用对象方法时可以通过类调用吗?看下面的案例: class A: def func(self): print('A') class B(A): def func(self): A.func(self) # 通过硬编码直接通过A.func调用 p 阅读全文
posted @ 2022-08-29 14:03 python心蓝 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 继承是面向对象一个非常重要的特性,如果没有继承那就不能称为类。 当定义一个类时,可以从现有的类继承,新的类称为子类(Sub Class)或派生类,被继承的类称为基类(Base Class),父类或超类(Super Class)。 派生类定义的语法如下: class SubClassName(Base 阅读全文
posted @ 2022-08-29 14:02 python心蓝 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 定义在类中的函数称为方法。根据调用的方式不同,分为: 对象方法 类方法 静态方法 魔术方法。 对象方法 定义在类中的普通函数,一般通过对象调用称为对象方法。 对象方法的定义 为了讲清楚对象方法的定义和调用,先看下面的案例 案例: 定义函数my_print,它接收一个Point对象,然后打印这个点的x 阅读全文
posted @ 2022-08-29 14:01 python心蓝 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 在编程的过程中经常会使用x.y的表达式,我把任何跟在点号之后的名称都称为属性。所以表达式x.y中,y是x的一个属性。 类有属性,对象也有属性。 类属性 类属性的定义 直接在类中定义的变量(与class语句只有一个缩进),就是类属性。 案例: 给Point类创建一个name属性用来表示点类的名称。 c 阅读全文
posted @ 2022-08-29 13:57 python心蓝 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 类 前面我讲到基本数据类型用来表示最常见的信息,但信息有无穷多种,为了更好的表达信息,我们可以创建自定义的数据类型。 一种数据类型就是一个类。例如整数,浮点数,字符串等。 类的定义 python中通过关键字class可以定义一个自定义的数据类型,基本语法如下: class 类名: 属性 方法 注意: 阅读全文
posted @ 2022-08-26 13:54 python心蓝 阅读(126) 评论(0) 推荐(0) 编辑
摘要: python中一个变量能够被访问的范围叫做作用域。根据作用域的大小分为: 全局变量 局部变量 全局变量 python是解释型编程语言,解释器在运行一个python程序时会在计算机内存中申请一块内存用来运行这个程序。全局变量在这块内存空间中都可以被访问。 直接顶格定义在函数外面的变量就是全局变量,在程 阅读全文
posted @ 2022-08-23 14:10 python心蓝 阅读(55) 评论(0) 推荐(0) 编辑
摘要: python解释器提供了70多个内置函数。 >>> import builtins >>> print(dir(builtins)) ['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingI 阅读全文
posted @ 2022-08-23 14:10 python心蓝 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 简单来说,lambda函数用来定义简单的,能够在一行内表示的函数。 语法格式如下: lambda arg1,arg2,... : experssion 案例: >>> f = lambda x,y: x+y # 等价于 >>> def f(x,y): ... return x + y lambda函 阅读全文
posted @ 2022-08-23 14:07 python心蓝 阅读(156) 评论(0) 推荐(0) 编辑