深入理解python面向对象编程(python基础语法004)
原创
©著作权归作者所有:来自51CTO博客作者苏凉zzyo的原创作品,请联系作者获取转载授权,否则将追究法律责任
🐚作者简介:苏凉(专注于网络爬虫,数据分析)
🐳博客主页:苏凉.py的博客 🌐系列专栏:Python基础语法专栏 👑名言警句:海阔凭鱼跃,天高任鸟飞。
📰要是觉得博主文章写的不错的话,还望大家三连支持一下呀!!!
👉关注✨点赞👍收藏📂
文章要点
✈1.python面向对象
Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。面向对象就是将编程当成是一个事物,对外界来说,事物是直接使用的,不用去管他内部的情况。而编程就是设置事物能够做什么事。
|
🍁面向对象关键词
- 类(class)
用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
- 类变量
类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
- 数据成员
类变量或者实例变量, 用于处理类及其实例对象的相关的数据。
- 方法重写
如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
- 局部变量
定义在方法中的变量,只作用于当前实例的类。
- 实例变量
在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。
- 继承
即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。
- 实例化
创建一个类的实例,类的具体对象。
- 方法
类中定义的函数。
- 对象
通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
✈2.类的创建
用class关键字来创建一个新类,类的名称通常为大写字母开头以冒号结束,注意,与函数不同,定义类不需要小括号。
实例:
# 创建一个对象
class List:
# 定义类的属性 name age
name = 'suliang'
age = 21
这里的name,age都是类的变量属性。这就是实例变量。
🍁__ init__()方法
__ init __()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法。必须确保在两边都有两个下划线,否则创建实例时不会自动调用该方法。
✨self参数
在此方法的定义中,self参数必不可少,且必须在其他形参的前面,当python用这个方法创建实例时,都会自动传递实参self,它是指向实例本身的一个引用,让实例都能访问类中的属性和方法。
✈3.根据类创建实例
可以将类作为一个有关如何创建实例的说明。
# 创建一个对象
class List:
# 定义一个方法
def __init__(self,name,age):
self.name = name
self.age = age
# 实例的初始化,包含对__init__ 的调用,为自己定义两个私有变量。
num1 = List('suliang',21)
print(num1.name)
print(num1.age)
🍁访问属性
要访问实例的属性,可用句点表示法,如上述的
print(num1.name)
print(num1.age)
结果:
🍁调用方法
这里我们再创建一个方法打印出名字和年龄。在创建实例之后。就能用 句点表达式来调用类中定义的任何方法 了。
# 创建一个对象
class List:
# 定义一个方法
def __init__(self,name,age):
self.name = name
self.age = age
def pri_name(self):
print(f'名字:{self.name}')
def pri_age(self):
print(f'年龄:{self.age}')
# 创建实例
num1 = List('suliang',21)
num2 = List('hacker',18)
# 调用方法
num1.pri_name()
num1.pri_age()
num2.pri_name()
num2.pri_age()
结果
✈4.使用类和实例
在创建好一个类之后,就是 对实例的创建,对实例的属性进行修改 等操作。那就让苏凉带大家一起看看是如何对实例的属性进行修改的吧。
🍁给属性指定默认值
# 创建一个对象
class List:
# 定义一个方法
def __init__(self,name,age):
self.name = name
self.age = age
self.area = 'none'
def pri_name(self):
print(f'名字:{self.name}')
def pri_age(self):
print(f'年龄:{self.age}')
def pri_area(self):
print(f'所在地区:{self.area}')
# 创建实例
num1 = List('suliang',21)
num2 = List('hacker',18)
# 调用方法
num1.pri_area()
结果:
🍁修改属性的值
总共有三种方法来修改属性的值
✨直接修改
直接 通过实例去修改。
num1.area = '天津'
print('修改前:',num1.name)
num1.name = '苏凉'
print('修改后:',num1.name)
print(num1.pri_area())
结果:
✨通过方法修改
在方法中更新属性,直接将值传递给方法,在内部进行更新。
# 创建一个对象
class List:
# 定义一个方法
def __init__(self,name,age):
self.name = name
self.age = age
self.area = 'none'
def pri_name(self):
print(f'名字:{self.name}')
def pri_age(self):
print(f'年龄:{self.age}')
def pri_area(self):
print(f'所在地区:{self.area}')
def updata(self,area):
self.area = area
# 创建实例
num1 = List('suliang',21)
num2 = List('hacker',18)
# 直接修改属性的值
num1.updata('天津')
num1.pri_area()
结果:
✨通过方法对属性的值进行递增
有时我们需要给属性 追加新的值,而不是设置为新的值,那么我们就可以用到该方法。
# 创建一个对象
class List:
# 定义一个方法
def __init__(self,name,age):
self.name = name
self.age = age
self.area = 'none'
def pri_name(self):
print(f'名字:{self.name}')
def pri_age(self):
print(f'年龄:{self.age}')
def pri_area(self):
print(f'所在地区:{self.area}')
def updata(self,area):
self.area = area
def add_area(self,auther):
self.area += auther
# 创建实例
num1 = List('suliang',21)
num2 = List('hacker',18)
# 直接修改属性的值
num1.updata('天津')
num1.add_area('重庆')
num1.pri_area()
结果:
结语
到这里今天的内容就结束啦,有不懂或者需要改正的地方可以私聊我或者在评论区里讨论都可以啊。希望这篇文章对各位能有所帮助,另外觉得博主写的不错的话,给个三连支持一下吧!!
关注我咱们下期再见!