类和对象
对象和类的基本概念
面向过程的编程思想:每一步的实现过程都是我们一步一步参与实现的,相当于参与者【代表语言:C语言】
面向对象的编程思想:我们在自己程序中,创建别人写好类的对象,调用别人写好的功能,相当于指挥者【代表语言:java,python】
举例:
吃饭:点外卖(面向对象用别人的);自己做饭(面向过程,自己参与每一步)
python中描述或者使用现实生活中的一个对象呢?
- 需要我们先创建一个概念性的东西,用于描述某一种所
有对象的共同特点,在python中称之为类 class - 我们就可以根据创建好的类,来创建若干个对象。
- 世间万物,皆为对象,同一种对象之间,会有相同的特点,都可以使用属性和行为对任意一个对象进行描述
在python中使用类描述一个事物
类创建和对象赋值
class类中的函数,必须要有一个参数,且是第一个是self
self: 表示当前调用该方法的对象
-
创建一个类
-
通过class创建类,def定义函数
-
类的创建格式
class 类名:
def 函数名(self,参量):
语句
def 函数名(self):
语句 -
通过一个类创建一个对象,需要调用类和函数
d1 = 类名()
d1.函数名()
d1.函数名(‘参量’)
代码展示:
class dog:
def run(self):
print('正在小跑')
def name(self, name):
print(f'小狗叫{name}')
# 相当于创建一个Person类的对象,将对象的地址值赋值给变量
#调用类及其参数
d1 = dog()
d1.run()
d1.name('哈士奇')
运行结果:
- 通过一个类创建多个对象
多次调用类和函数
代码展示:
class dog:
def run(self):
print('正在小跑')
def name(self, name):
print(f'小狗叫{name}')
# 相当于创建一个Person类的对象,将对象的地址值赋值给变量
#调用类及其参数
d1 = dog()
d1.run()
d1.name('哈士奇')
print('第二个对象'.center(50,"-"))
d1.run()
d1.name('德牧')
运行结果:
给对象赋予属性
- 类中不写,创建对象的之后,单独为该对象创建新的属性
代码展示:
class dog:
def run(self):
print('正在小跑')
def name(self, name):
print(f'小狗叫{name}')
d1 = dog()
d1.run()
d1.name('哈士奇')
print('第二个对象'.center(50,"-"))
d1.run()
d1.name('德牧')
print('第三个对象'.center(50,"-"))
d1.name = '哈士奇2'
print(f"d1对象的姓名为:{d1.name}")
运行结果:
- 类中编写,创建对象的时候,直接就拥有了某个属性,并且可以直接赋值
使用类名() 的方式创建对象,实际上底层调用的是类中的__init__(self);若自己没写,默认一个类中有一个__init__(self),且只能有一个
代码展示:
class dog:
def __init__(self,name):
self.name = name
def run2(self):
print('正在小跑')
d2 = dog('哈士奇')
print(f'小狗叫{d2.name}')
print('-'*50)
d3 = dog('',)
d3.run2()
运行结果: