python中的面向对象编程(一)

文章介绍了Python中类和对象的概念,类作为一个抽象模板,用于创建具有特定特征的对象。实例化是通过类创建对象的过程,每个对象都有其独特的内存地址。`__init__`函数用于初始化对象属性,提供默认值或接收参数来设定属性值。文中通过汽车和房屋的例子帮助理解类和对象的关系及其使用。
摘要由CSDN通过智能技术生成

一、类与对象

类:类是一个抽象的概念,在现实世界中不存在。

类本质上是在现实世界中具有共同特征的事物,通过提取这些共同特征形成的概念叫做“类”,比如人类、动物类、汽车类、鸟类等。 类其实就是一个模板,类中描述的是所有对象的“共同特征”。

实例化:对象还有一个别名叫做“实例”,通过类创建对象的过程叫做“实例化”。

对象:对象是一个具体的概念,在现实世界中真实存在的。
对象就是通过类创建出的真实的个体。

1.1 代码的方式定义类和对象

使用 class 语句来创建一个新类,class之后为类的名称(通常首字母大写)并以冒号结尾,例如:

class Car:
    #方法
    def getCarInfo(self):
        print("车轮子个数:%d,颜色:%s"%(self.wheelNum,self.color)

    def move(self):
        print("移动中...")

在类中,可以定义所使用的方法,类中的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。 它表示类创建的实例本身,指向当前创建对象的内存地址。某个对象调用其方法时,python解释器会把这个对象作为第一个参数传递给self,所以开发者只需要传递后面的参数即可。

举盖房子的例子:假设我们由‘商品房’这个类实例化出对象a 和 对象b 。这时候客户a和客户b都买了同一个设计图(同一个类)盖出的房子,但是他们想要自己的装修风格,这些装修风格就是对象a、对象b的特征。当装修队开始装修房子时,要根据不同风格进行装修。那么,如何选择装修风格呢?很简单,根据客户选择!所以,self其中代指的就是客户,也就是实例本身。

所以,具体的实例化过程是这样的,当使用‘商品房’这个类实例化出对象a 时,默认参数self会把对象a创建在某一个内存地址中;同理,在实例化出对象b 时,默认参数self会把对象b创建在另一个与a不同的内存地址中。就如同客户a和客户b买商品房不可能买的是同一套房子一样,self的制作就如同售楼处,可以让客户买到不同地址的房子,而且还会管理这些房号,让客户在装修时知道去几零几号装修。简而言之,可以把self理解成类在实例化对象时的管理工具。

刚才的代码中,我们定义了一个Car类; 就好比一张车的图纸,那么接下来就应该把图纸交给生成工人们去生成了。python中,可以根据已经定义的类去创建出一个个对象,创建对象的格式为: 对象名 = 类名()

class Car:
    # 方法
    def getCarInfo(self):
        print('车轮子个数:%d, 颜色%s'%(self.wheelNum, self.color))

    def move(self):
        print("车正在移动...")

# 创建一个对象,并用变量Wuling来保存它的引用
Byd = Car()
Byd.color = 'white' #使用‘.’符号的方法添加类属性:车的颜色
Byd.wheelNum = 4 #使用‘.’符号的方法添加类属性:轮子数量
Byd.move() #使用‘.函数名()’的语法调用类中函数:车的行驶

print(Byd.color) #打印实例五菱的颜色属性
print(Byd.wheelNum) #打印实例五菱的车轮数量属性

我们添加了两个对象属性:wheelNum和color,如果再次创建一个对象的话,创建之后需要重新进行属性添加,这样做是比较麻烦的。是否可以在创建对象时,就可以顺便把属性给与呢?

这就是__init__()函数的作用。使用方法如下实例所示:

# 定义汽车类
class Car:
    # 初始化函数,对象属性有默认值:4和white;也可以通过传参的方法对对象属性进行重新赋值
    def __init__(self, wheelNum=4, color='white'):
        self.wheelNum = wheelNum
        self.color = color
    # 定义类方法
    def move(self):
        print('车在行驶')

# 创建对象五菱神车,不传参时,属性使用默认值
Byd = Car() 
print('Byd的颜色为:',  Byd.color)
print('Byd轮胎数量为:', Byd.wheelNum)

# 创建对象自行车,传参时,新的传参值代替默认值
Bicycle = Car(2, 'black')
print('自行车的颜色为:',  Bicycle.color)
print('自行车轮胎数量为:', Bicycle.wheelNum)

        __init__(self)中的self参数,不需要开发者传递,python解释器会自动把当前的对象引用传递进去。

以上内容有任何错误和不足欢迎指正。

声明:以上内容并非本人原创,借鉴于Awrin。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值