本篇博文介绍
知识目标 | python数据分析所需要的基础内容 |
本篇目标 | 类和对象 构造方法 |
前言
想要学懂Python数据分析,很重要的一点需要有一定的python基础,特别是要对类和对象的相关概念有所了解,因为python数据分析涉及到的库(pandas、numpy、matplotlib、pyecharts)中都应用到了类和对象。
想要进一步的完成一些有难度的数据分析任务,需要我们将python的函数、循环和判断等语句融会贯通,与数据分析相关知识结合起来解决数据分析问题。
因此,有必要确认自己的python基础掌握情况,进行针对性复习。
python数据分析所需要的基础内容
如下图:
类和对象
类是一个对象的抽象集合体
对象是根据类创造的实体
编程语言中,类是一段代码,对象是根据这段代码创造出来的具有一定属性和功能的实体
类的属性和方法
属性是一个类里面所有对象共同拥有的特征
方法(函数)是一个类里面所有对象共同拥有的功能
#定义一个 狗类
class Dog: #声明类的名称
def __init__(self): #定义类的属性
self.color = '白色'
def eat_bone(self): #定义类的方法(函数)
print('开饭啦')
dog = Dog() #生成Dog对象
print('打印对象结果:',dog) #打印对象结果
print('查看dog对象的属性:',dog.color) #查看dog对象的属性
print('查看dog对象的类型:',type(dog)) #查看dog对象的属性
dog.eat_bone() #调用dog对象的方法
dog2 = Dog() #定义另一个Dog对象
dog2.color = '黑色' #修改颜色属性
print('查看修改后的对象颜色:',dog2.color) #查看修改后的对象颜色
构造方法:
创建类的实例(对象)的时候自动执行的方法,用来对对象的属性进行初始化。
构造方法分为:
1、无参构造方法:调用类方法时,无需输入参数
2、有参构造方法
1、无参构造方法
# 1.无参构造方法
class Dog:
def __init__(seif): #无参构造方法
self.color = '白色'
def eat_bone(self):
print('开饭啦')
dog = Dog()
print('狗的颜色是:',dog.color)
输出结果:狗的颜色是:白色
.2、有参构造方法
# 2.有参构造方法
class Dog:
def __init__(seif,color): #有参构造方法
self.color = color
def eat_bone(self):
print('开饭啦')
dog = Dog('黑色') #创建一个狗狗对象,并指定它为黑色
print('狗的颜色是:',dog.color)
输出结果:狗的颜色是:黑色
self在类中的概念:
self表示实例对象本身
类中定义的任何方法(函数)中的第一个参数都是self
表示将对象的信息作为默认参数自动传给这些方法,开发者调用这些方法时不需要再把对象作为参数写入
class Dog:
def __init__(seif): #self作为构造方法的第一个参数
self.color = 白色
def eat_bone(self): #self作为eat_bone方法的第一个参数
print('一只%s的狗开饭啦'%self.color)
dog = Dog()
dog.eat_bone() #调用吃骨头方法时,没有传入对象作为参数却能使用对象的属性信息
输出信息:一只 白色 的狗开饭啦
class Fish:
def __init__(seif):
self.name = '秋刀鱼'
class cat:
def __init__(seif):
self.name = '汤姆'
def eat_fish(self,number,fish): #方法中传入其他对象
print('%s 吃了 %d 条 %s'%(self.name,10,fish.name))
fish = Fish()
cat = Cat()
cat.eat_fish(10,fish) #不需要传入cat对象也能使用cat对象的名字属性
输出信息:汤姆 吃了 10 条 秋刀鱼
类的魔法方法
1、__str__方法:控制对象的打印结果
class Dog:
def __init__(seif): #self作为构造方法的第一个参数
self.color = 白色
def eat_bone(self): #self作为eat_bone方法的第一个参数
print('一只%s的狗开饭啦'%self.color)
def __str__(self):
return '这是一只 %s 的狗' % self.color
dog = Dog()
print(dog)
输出信息:这是一只 白色 的狗
有没有想过,为什么 1+2=3 但是 '1'+'2'='12'?
这是由int类和str类中的__add__方法定义的
2、__add__方法:控制对象的加法运算结果
#定义一个狗类,狗类有一个体重属性,体重属性通过有参构造实现。
#定义它的__add__方法,只考虑同类相加,实现:一个10斤的狗+一个20斤的狗=30斤的狗
#方法一:修改对象本身的体重,方法返回对象本身
#方法二:生成一只新的狗,体重是前面两只的和
class Dog:
def __init__(self,weight):
self.weight = weight
def __add__(self, other):
# self.weight = self.weight + other.weight
# 把大狗的体重改写#return self
# 将对象自己作为返回值
new_dog = Dog(self.weight + other.weight) #生成了第三只狗
return new_dog
def __str__( self):
return '这是一只%d斤的狗'% self.weight
dog1 = Dog(10)#大狗10斤
dog2 = Dog(20)#二狗20斤
print(dog1)
print(dog2)
dog3 = dog1+dog2
print(dog3)
输出结果:这是一只 10 斤的狗
这是一只 20 斤的狗
这是一只 30 斤的狗
【实操例子】类的定义与实例化
【例子一】矩形类
1、定义一个类:Rectangle,用来定义各种矩形。
2、类中使用有参构造方法定义矩形的 长 和 宽 作为属性。
3、定义“计算面积”和“计算周长”两种方法。
4、创建一个矩形对象,并计算其面积和周长。
class Rectangle:
def __init__(self, length, width):
self.length = length
self.width = width
def calculate_area(self):
return self.length * self.width
def calculate_perimeter(self):
return 2 * (self.length + self.width)
# 创建矩形对象并计算面积和周长
rect = Rectangle(5, 3)
area = rect.calculate_area()
perimeter = rect.calculate_perimeter()
print("面积:", area)
print("周长:", perimeter)
【例子二】游戏角色类
1、定义游戏角色类 GameCharacter,用来定义各种游戏角色。
2、类中使用有参构造定义游戏角色的名字、攻击力、防御力、血量 作为属性。
3、定义 攻击 方法,使用该方法能够对另一个游戏角色进行攻击,使对方收到伤害。
4、创建游戏角色1和游戏角色2,使游戏角色1对游戏角色2进行攻击。
class GameCharacter:
def __init__(self, name, attack, defense, hp):
self.name = name
self.attack = attack
self.defense = defense
self.hp = hp
def attack_other(self, other_character):
# 计算实际造成的伤害
damage = max(0, self.attack - other_character.defense)
other_character.hp -= damage
# 创建游戏角色 1
character1 = GameCharacter("角色 1", 50, 20, 100)
# 创建游戏角色 2
character2 = GameCharacter("角色 2", 40, 15, 80)
# 角色 1 攻击角色 2
character1.attack_other(character2)
print(f"{character2.name} 的剩余血量为: {character2.hp}")
Python 类和对象、类的定义与实例化的一些关键要点结尾复习
类的定义:
使用 class 关键字来定义一个类。
class MyClass:
# 可以在这里定义属性和方法
构造方法( __init__ ):
通常用于初始化对象的属性。
class MyClass:
def __init__(self, param1, param2):
self.attr1 = param1
self.attr2 = param2
属性: 可以是类中的变量。
方法: 类中的函数,用于执行特定操作。
class MyClass:
def my_method(self):
# 方法的代码
实例化:
通过类创建对象。
obj = MyClass(value1, value2)
对象可以访问类中的属性和方法。
obj.attr1 # 获取属性
obj.my_method() # 执行方法
内容到此结束,希望本篇博文内容对你有帮助。