面向对象介绍与语法基础

本文深入介绍了面向对象编程的基本概念,包括面向对象与面向过程的区别,类与对象的定义,以及如何通过类创建对象。重点阐述了类的属性和方法,__init__方法用于初始化对象的特性,以及实例化的概念。文章还通过实例展示了如何为对象定制独特的特征。
摘要由CSDN通过智能技术生成

面向过程与面向对象

        面向对象:写程序的一种思路,对象在程序中是object物体的意思,我们用这种思维方式首先应该想到的是程序由哪几部分组成,有了这些组成部分我们再考虑之后的每部分的单个部分该怎么做

        面向过程:过程的意思是实现的步骤,我们按照这样的步骤编写代码使复杂的问题流程化,进而简单化,面向过程以执行者的思维去考虑每一步应该怎么做

类和对象

        面向对象中想要把现实世界中的事物用代码抽象出来,我们需要创建一个事物的类,通过事物的类去产生具体的对象,将程序里面的对象与现实世界当中的事物进行对应

抽象:从众多的事物中抽出共同的、本质的特征,摈弃非本质的特征的过程

类:生活中事物的类别

对象:类的具体事物,类的某个“个体”

类是很多对象相似特证的集合,一个类中有很多对象

类的定义

声明类

class 类名:
     '''类的文档字符串'''
 类体

类的定义和函数相似,不同的是调用函数会执行函数体代码返回函数体执行的结果,而我们定义类时,在类的定义阶段他的代码就会运行,我们可以证明一下

class Dog: 
    print("汪汪汪")

输出结果:汪汪汪

则我们就证明了类的定义阶段其内部的代码就会运行,而函数则需要调用

函数和类都会产生各自的局部名称空间,将名字放进去

class Dog: 
    age = 2 
    sex = '公' 
print(Dog.__dict__)

输出结果:{'__module__': '__main__', 'age': 2, 'sex': '公', '__dict__': <attribute '__dict__' of 'Dog' objects>, '__weakref__': <attribute '__weakref__' of 'Dog' objects>, '__doc__': None}

产生的这些名字会放在类的名称空间中,__dict__看到的就是名称空间

那我们到底在类里面应该写什么?写属性和方法,在类里面定义的变量我们称之为类属性,类里面定义的函数我们称之为方法

属性:事物有许多的特征,把这些特征用程序来描述则就叫做属性,比如:人的身高,性别,名字等都叫做属性,一个中可以包含多个属性

方法:事物不止有其特性,还可以做好多事,比如人可以说话,走路,吃饭等这些都可以称为方法

产生对象

        调用类会产生对象,根据类创建的对象我们称之为实例化,类是一个模板,按照模板产生对象。类是一个抽象的概念,不是真实存在的,我们用类的目的是造出对象。类名加括号调用一次就是实例化一次,实例化一次就是得到一个对象

dog1 = Dog()#实例化一个dog1的对象

如何给每个对象定制一个他们独有的特征,此时我们就需要用到__init__方法

class Dog: 
    def __init__(self, name, age): 
    # 初始化name和age
    self. name = name 
    self.age = age
dog1 = Dog("旺财",3)
print(dog1.name) 
print(dog1.age)

输出结果:旺财 
         3

        可以看出__init__()方法包含三个形参:self、name、age,在定义这个方法时,形参self必不可少,并且必须位于其他形参的前面,而__int__()方法每当根据Dog创建新的实例时,Python都会运行他,在Python调用这个方法来创建Dog实例时,将自动传入实参self。每个与实例相关联的方法调用都自动传入self,它是一个指向实例本身的一个引用,让实例能够访问到类中的属性和方法。

        简单来说self就是谁调用了__init__()方法就将self传给谁比如上面程序dog1调用了形参name就把dog1指向self. name = name中的self,而他的name值就是“旺财”

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值