python基础之面向对象介绍小猪皮蛋

对象是数据和功能的结合体。或者说:对象时一个盛放数据和功能的容器。

2、面向对象编程的优缺点是什么?

优点:可扩展性高缺点:比编写面向过程的代码难度大

1、类

用来存放多个对象相同的数据和功能的容器。

2、强调:

在程序中,必须要先定义类,后调用类产生对象(调用类拿到的返回值就是对象)。

首先定义类

classStudent:#数据(变量)数据school='star'#功能(函数)defstudy(self):print('studying')类体的代码在类定义阶段就会执行,因而会产生新的名称空间用来存放类中定义的名字,可以打印Student__dict__来查看类这个容器内盛放的东西

print(Student)#print(Student.__dict__)#{'__module__':'__main__','school':'star','study':,#'__dict__':,#'__weakref__':,'__doc__':None}调用类的过程称之为将类实例化,拿到的返回值就是程序中的对象,或称之为一个实例。

#实例化stu1=Student()print(stu1)#<__main__.Studentobjectat0x00000000029C3EF0>stu2=Student()print(stu2)#<__main__.Studentobjectat0x00000000028C30F0>stu3=Student()print(stu3)#<__main__.Studentobjectat0x0000000002981CC0>如此stu1、stu2、stu3全都一样了(只有类中共有的内容,没有各自独有的数据),想定制独有,需要在类内部新增一个__init__方法

classStudent:#数据(变量)数据school='star'#__init__专门为对象进行初始化操作,可以有任意代码,但一定不能反回非None的值def__init__(self,name,age):self.name=nameself.age=age#功能(函数)defstudy(self):print('studying')stu1=Student('xioabao',17)stu2=Student('dabao',18)此时,调用类会先产生一个空对象stu1,然后将stu1连同调用类时括号内的参数一起传给Student.__init__('xioabao',17),会产生对象的名称空间,同样可以用__dict__查看。

print(stu1.__dict__)#{'name':'xioabao','age':17}至此,我们造出了2个对象,1个类,对象中存放各自独有的数据,类中存放对象们共有的内容。

2.1、类属性与对象属性

在类中定义的名字,都是类的属性,分为:数据属性和函数属性。

可以通过__init__访问属性的值,如:Student.__init__['school'],python提供了专门的属性访问方法。

print(Student.school)#starprint(Student.study)#操作对象的属性:

查:

print(stu1.name)#xioabaoprint(stu1.age)#17增:

stu1.country='China'print(stu1.country)#China改:

stu1.country='中国'print(stu1.country)#中国删:

delstu1.countryprint(stu1.country)#AttributeError:'Student'objecthasnoattribute'country'

对象的名称空间只存放对象独有的属性,而对象们相似的属性是存放于类中的。对象在访问属性时,会优先从对象本身的__dict__中查找,未找到,则去类的__dict__中查找。

3.1、类中的数据属性,是共享给所有对象用的,指向相同的内存地址。

print(id(Student.school))#38450208print(id(stu1.school))#38450208print(id(stu1.school))#38450208

3.2、类中的函数属性,类可以使用,但必须遵循函数的参数规则,有几个参数需要传几个参数。

Student.study(stu1)Student.study(stu2)类中定义的函数主要是给对象使用的,绑定到不同对象就是不同的绑定方法,内存地址不同。

print(stu1.study)#>print(stu2.study)#>

由对象来调用类内部的函数,称之为对象的绑定方法。

对象的绑定方法特殊之处:会将对象当做第一个参数传给该方法。

print(id(stu1.study))#4921160等同于Stundent.study(stu1)print(id(stu2.study))#4921160等同于Student.study(stu2)注意:绑定到对象方法的这种自动传值的特征,决定了在类中定义的函数都要默认写一个参数self,self可以是任意名字,但命名为self是约定俗成的。

THE END
1.Python究竟是不是面向对象的编程语言?Python中的面向对象编程具有灵活性和易用性,使得代码更加模块化和可维护。通过面向对象编程,可以提高代码https://www.zhihu.com/question/266245345/answer/3418493011
2.Python教程(22)——Python面向对象的属性和方法Python面向对象编程中,属性和方法是类及其对象的重要组成部分。如果说封装、继承和多态是面向对象编程中的思想,那么类的属性和方法就是骨架,因为有属性和方法,面向对象编程才变的有血有肉。属性 属性是类或对象所拥有的数据,它用于描述对象的特征和状态。属性可以是实例属性(对象特有的属性)或类属性(属于类本身https://baijiahao.baidu.com/s?id=1787708887930656726&wfr=spider&for=pc
3.Python之面向对象python面向对象Python之面向对象 1、对面向对象的理解 ●?向对象(Object Oriented)是?种程序设计思想,?的是降低 ?规模程序的设计复杂度,提?代码的重?性。 ●它是将程序的功能进?模块化的设计,抽象成有“属性”和“?法”的“类” ,通过根据这些“类”创建出来的对象实例,进?相互的调?,完成程序https://blog.csdn.net/niubilitygeorge/article/details/141727116
4.Python语言的面向对象编程51CTO博客面向对象编程,即OOP,对于面向对象的语言来说,常常会提到封装、继承、类等概念。 面向对象的由来:基于哲学中的万物皆对象,核心思想是将我们的程序对象化,模块化,在Python语言中常用class命名一个类,比如class Person(),class Student等等。在类中常常有属性和行为,比如在Person这个类中有名字,身高,体重等属性,这些Pythttps://blog.51cto.com/u_14229365/2923950
5.Python(2)十三、Python面向对象编程 面向过程:根据业务逻辑从上到下写代码 面向对象:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程 面向对象编程的2个非常重要的概念:类和对象 对象是面向对象编程的核心,在使用对象的过程中,为了将具有共同特征和行为的一组对象抽象定义,提出了另外一个https://www.jianshu.com/p/715a04efa469
6.Python中的==与is关键字,是一样的吗腾讯云开发者社区双等号==运算符和is关键字是Python中比较对象的常用语句,本文将通过几个例子了解它们之间的区别。 双等号==运算符 当赋值给被比较对象的值相等时,双等号==运算符返回True。==运算符在比较对象时不匹配两个对象的内存位置,因此,即使两个对象的内存位置不同但值相同,双等号运算符也将返回True。简而言之,==运算符https://cloud.tencent.com/developer/article/2015768
7.python语言是免费还是收费的?python● Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。 ● Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。 到此这篇关于python语言是免费还是收费的?的文章就介绍到这了,更多相关python语https://www.jb51.net/article/188651.htm
8.python编程语法有什么?Python是一种面向对象的编程语言,支持类、对象、继承、多态等面向对象的特性。开发者可以使用类来创建自定义的对象,并通过继承和多态来实现代码的重用和扩展。 6. 文件操作 Python提供了丰富的文件操作函数和方法,可以方便地读取、写入和操作文件。通过打开文件、读取或写入数据,并在使用完毕后关闭文件,可以有效地管理https://www.bwie.com/jsgh/117.html
9.GitHub例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言)。 通过上面这些介绍,我们可以得出. Python是一门动态解释性的弱类型定义语言。5. Python的种类Cpython Python的官方版本,使用C语言实现,使用最为https://github.com/StrvieMeet/Python
10.入门·python教程·看云Python 是一种解释型语言:这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。 Python 是交互式语言:这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。 Python 是面向对象语言:这意味着Python支持面向对象的风格或代码封装在对象的编程技术。 https://www.kancloud.cn/loveyh1557/python/954328