Python基础——类、实例及初始化

本文介绍了Python中的面向对象编程,详细阐述了类和实例的概念,包括如何定义类的方法、实例化对象以及属性的使用。进一步讲解了初始化过程,探讨了self参数在方法中的作用,并通过实例解释了初始化如何自动设置实例属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、面向对象编程
  1. 我们最开始写代码是面向过程编程的,即:一步步按顺序去实现
  2. 后来我们学习了函数,把这些功能封装到函数里面,需要实现某个功能的时候直接调用就行,这样可以减少代码的重复性,这就是函数式编程
  3. 现在我们学习第三种编程方法:面向对象编程—— 一切事物皆为对象 ,面向对象编程是一种编程设计思想。面向对象程序设计作为一种新方法,其本质是以建立模型体现出来的抽象思维过程和面向对象的方法。面向对象的语言支持的概念包括:类与对象、继承、多态。
二、类和实例

类是抽象出来的模板(共性),比如 歌手类
实例是根据我们的类创建出来的一个个具体的“对象,每个对象都有相同的方法,但各自的数据不同,例如:许嵩、陈奕迅、李荣浩

1、定义类的方法(与定义函数的方法类似)
  • 定义函数的方法:
def f():
    pass
  • 定义类的方法:

方法:class 类名:

  • 例如定义一个歌手类,注意:类名同变量名,使用大驼峰命名法; eg:HeloWorld, helloWorld
  • 三引号中的内容是解释这个类的用途
class Singer:
    '''这是一个歌手类'''
    pass
2、实例化对象
vae = Singer()

总结:
1、Python中一切皆对象
2、新建一个对象的过程叫做实例化,而面向对象就是这个类的一个实例

3、属性

每个对象都有相同的方法,但各自的数据可能不同,我们需要让我们的对象拥有自己的个性

class Singer:
    '''这是一个歌手类'''
    pass

vae = Singer()
vae.age = '32'   # 句点法 赋值
vae.height = '180cm'
print(vae)      
# <__main__.Singer object at 0x00000168054D42E8> 
# 有一个内存地址,用于存放他的这些属性
print(vae.age)    
# 32,  句点法,去引用
  • 类属性VS实例属性:类不能访问我们的实例属性
print(Singer.age)    
# AttributeError: type object 'Singer' has no attribute 'age'
二、初始化
1、类和函数
  • 以下完成了类和实例:
class Singer:
    pass

Vae = Singer()
Vae.age = 32
Eason = Singer()
Eason.age = 45
print(Vae.age)      # 32 
print(Eason.age)    # 45
  • 现在我们使用函数:
class Singer:
    pass

Vae = Singer()
Vae.age = 32
Eason = Singer()
Eason.age = 45

def add_singer(s1, s2):
    singer = Singer()
    singer.age = s1.age + s2.age
    return singer
hh = add_singer(Vae, Eason)
print(hh.age)
2、类和方法
class Cat():
    '''这是一个猫类'''


    def add_cat(cat):
        print("{}  {}".format(cat.color, cat.eat))

kitty = Cat()
kitty.color = "white"
kitty.eat = "food"

Cat.add_cat(kitty)    #类下面方法的调用         white  food
kitty.add_cat()  #white  food

总结:
1、实例能访问类属性,也能访问实例属性
2、类只能访问类属性

3、self简介

self参数传入的是你创建的对象
self可直接将对象带参数传入类中的方法,像这种在对象中封装数据,对类进行优化的方法叫做封装

class Cat:
    '''这是一个猫类'''


    def add_cat(self):
        print("{}  {}".format(self.color, self.eat))

kitty = Cat()
kitty.color = "white"
kitty.eat = "food"

Cat.add_cat(kitty)    #类下面方法的调用         white  food
kitty.add_cat()  #white  food
4、初始化(在类里面添加实例就是初始化)

init: 自动被调用,把实例下的属性放到类里面

class Cat:
    '''这是一个猫类'''
    def __init__(self, color, eat, age):
        self.color = color
        self.eat = eat
        self.age = age


    def add_cat(self):
        print("{}  {}".format(self.color, self.eat))

kitty = Cat("white", "food", 1)
print(kitty.color)   #white
三、练习
class rectangl:
    '''这是一个矩形类'''
    def __init__(self, length, height):
        self.length = length
        self.height = height


    def area(self):
        area = self.length*self.height
        return area

    def perimeter(self):
        perimeter = (self.length + self.height)*2
        return perimeter

A = rectangl(5, 4)
print("矩形A的面积是:", A.area())           #矩形A的面积是: 20
print("矩形A的周长是:", A.perimeter())      #矩形A的周长是: 18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值