重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
类的概念:
专注于为中小企业提供成都网站建设、成都做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业临猗免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
类 Class: 用来描述具体相同的属性和方法的对象的集合。定义了该集合中每个对象所共有的属性和方法。对象是类的示例。
类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
实例变量:定义在方法中的变量,只作用于当前实例的类。
数据成员:类变量或者实例变量用于处理类及其实例对象的相关数据。
方法:类中定义的函数。在类内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self, 且为第一个参数,self 代表的是类的实例。
构造函数:即__init()__,特殊的方法,在对象创建的时候被自动调用。
析构函数:即__del()__,特殊的方法,在对象被销毁时被自动调用。
实例化:创建一个类的实例,类的具体对象。就是将创建的类赋值给另一个变量。理解为赋值即可,a = class(),这个过程,就叫做实例化
对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟”是一个(is-a)”关系(例图,Dog是一个Animal)。
方法重写:如果从父类继承的方法不能满足子类的需求,可以对其 进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
————————————————
原文链接:
网页链接
1、类概念的引入
如果了解了面向对象之后,接下来由客观世界中的对象拓展到计算机中的对象,再对客观世界中的对象进行特征和行为的提取,从而拓展到计算机中对象的属性和方法的提取,最终采用抽象提取计算机中对象的共同属性和方法,形成类。
在客观世界中,对象是指人们在行动或思考时作为目标的事物。例如,买车、买房、买包,这些都具有购买的目标,这些目标就是购买对象。万事万物皆是对象,对象分为有形对象和无形对象。有形对象是人们看得见、摸得着的对象。无形对象是人们看不见、摸不着的对象,但它也是人们行动或思考的目标,也属于对象,如记忆、计划等。
在计算机中,对象是客观世界中的对象在计算机中的映射。例如,一条狗是客观世界中的对象,它有品种、名字和年龄等数据信息。但是在计算机软件开发研究的过程中,注重的是它的品种、年龄等信息。由此可见,客观世界中的对象要映射到计算机中需要进行筛选。
计算机中对象的内涵包括以下三个方面:
①对象具有唯一性。每个对象都有自身唯一的标识,并且它的标识在其整个生命周期中都不会改变。不同的对象有不同的标识。
②对象是构成软件系统的一个基本单位。面向对象编程是以对象为导向,以对象为目标的,也就是说,软件系统是基于对象的。
③对象是属性和方法的统一体。描述一个人,姓名、年龄是描述他的属性数据,跳舞、唱歌是他的操作方法,属性和方法构成了计算机中的对象。
由上文可知,客观世界中的对象的特征映射为计算机中的对象的属性,行为映射为方法。
2、由抽象获得类
抽象是一个提取各种对象共同特征和行为的一个过程。例如,两支笔,它们有共同的颜色、材质,它们都能写字、画画,即有共同的特征和行为。提取共同特征和行为之后,就可以总结出笔的概念。拓展到计算机中的对象,就是用抽象提取对象的共同属性和方法,从而形成类。
类是具有相同属性和方法的一组对象的集合。在Python中,对象是类的实例,类是对象的抽象。
3、定义类
定义类的语法和定义函数的语法类似,定义函数使用的关键字是def,而定义类使用的关键字是class。定义类的基本语法格式如下:
class 类名:
pass
以定义一个最简单的类为例,这里定义了一个类名为Cat的类,它是“空”的,仅仅展示了定义类的基本语法:
class Cat:
... pass
...
以上就是Python中类的概念,更多关于Python的基础性知识点可以看下这个更加直观视频教程:网页链接,希望我的回答能帮到你。
4.6. 定义函数
我们可以创建一个用来生成指定边界的斐波那契数列的函数:
def fib(n): # write Fibonacci series up to n
... """Print a Fibonacci series up to n."""
... a, b = 0, 1
... while a n:
... print(a, end=' ')
... a, b = b, a+b
... print()
...
# Now call the function we just defined:
... fib(2000)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
关键字 def 引入了一个函数 定义。在其后必须跟有函数名和包括形式参数的圆括号。函数体语句从下一行开始,必须是缩进的。
函数体的第一行语句可以是可选的字符串文本,这个字符串是函数的文档字符串,或者称为 docstring。(更多关于 docstrings 的信息请参考 文档字符串) 有些工具通过 docstrings 自动生成在线的或可打印的文档,或者让用户通过代码交互浏览;在你的代码中包含 docstrings 是一个好的实践,让它成为习惯吧。
函数 调用 会为函数局部变量生成一个新的符号表。确切的说,所有函数中的变量赋值都是将值存储在局部符号表。变量引用首先在局部符号表中查找,然后是包含函数的局部符号表,然后是全局符号表,最后是内置名字表。因此,全局变量不能在函数中直接赋值(除非用 global 语句命名),尽管他们可以被引用。
函数引用的实际参数在函数调用时引入局部符号表,因此,实参总是 传值调用 (这里的 值 总是一个对象 引用 ,而不是该对象的值)。[1] 一个函数被另一个函数调用时,一个新的局部符号表在调用过程中被创建。
一个函数定义会在当前符号表内引入函数名。函数名指代的值(即函数体)有一个被 Python 解释器认定为 用户自定义函数 的类型。 这个值可以赋予其他的名字(即变量名),然后它也可以被当作函数使用。这可以作为通用的重命名机制:
fib
f = fib
f(100)
0 1 1 2 3 5 8 13 21 34 55 89
如果你使用过其他语言,你可能会反对说:fib 不是一个函数,而是一个方法,因为它并不返回任何值。事实上,没有 return 语句的函数确实会返回一个值,虽然是一个相当令人厌烦的值(指 None )。这个值被称为 None (这是一个内建名称)。如果 None 值是唯一被书写的值,那么在写的时候通常会被解释器忽略(即不输出任何内容)。如果你确实想看到这个值的输出内容,请使用 print() 函数: