目录
1.定义:面向对象编程是一种理念,可以提高我们的开发速度和代码的重用率
1.定义:类是一群具有相同特征或行为的事物的统称,是抽象的,不能直接使用
1.打印对象的名称时默认调用的是__str__()方法,此方法默认返回的是对象的内存地址。
2。想要打印出值,我们可以重写 __str__() 方法打印对象保存的信息。
一、定义
1.定义:面向对象编程是一种理念,可以提高我们的开发速度和代码的重用率
生活中 | 程序中 | |
面向过程 | 亲力亲为,自己买菜做饭吃 | 函数和函数之间的调用,以函数为基本结构 |
面向对象 | 坐享其成,定外卖吃,让别人去干,自己享受成果 | 以对象为基本结构韩式使用 |
二、类
1.定义:类是一群具有相同特征或行为的事物的统称,是抽象的,不能直接使用
2.类可以理解为是一种事物的模板
描述类的方法 | 行为 | 也可看做是方法 |
特征 | 也可看做是属性 |
三、对象
1.定义:类创造的每一个具体的实体,可以直接使用
对类和对象的管理 | 先有类后再有对象 |
类只有一个,对象可以有多个(一对多模式) |
四、类名设计
类名设计要求 | |
类名 | 大驼峰命名法,(每个单词首字母大写) |
属性 | 描述这类事物的特征------>变量 |
方法 | 描述这类事物的行为------->函数 |
五、创建类
格式 |
class 类名: |
class 类名(object): |
六、创建对象
1.格式:
对象名(变量名)=类名()
class Dog:
def eat():
print('吃饭了。。。')
def study():
print('见过凌晨三点的北京')
dog=Dog()
dog.eat()
print(id(dog))
dog1=Dog()
dog1.eat()
print(id(dog1))
dog=dog1
print(id(dog))
print(id(dog1))
解析:
2.self:
self:哪个对象调用属性或者方法,self就是哪个对象,指向哪个对象
self:变量名称可以修改,但是不建议修改
class Person:
def study(self):
print('hhhhhhh')
def eat(self):
print('xixixiix')
a=Person()
a.study()
a.eat()
结果:
hhhhhhh
xixixiix
七、在类的外部添加属性
1.格式:
对象名.属性名=值
class Person:
def eat(self):
print(self.name,'吃饭了。。。。')
person=Person()
person.name='zs'#给对象添加属性
person.eat()
结果:
zs 吃饭了
解析:
八、--init--方法
1.--init--初始化方法在创建类的时候自动调用
可以在此方法中做一些初始化的操作(初始化一些变量)
class Cat:
def __init__(self):
print('init方法在创建对象的时候执行')
def eat(self):
print('猫吃老鼠。。')
bule_cat=Cat()
bule_cat.eat()
结果:
2. 给对象添加一个属性
class Cat:
def __init__(self):
print('init方法在创建对象的时候执行')
self.name='蓝猫' #给对象添加一个name属性,
def eat(self):
print('猫吃老鼠。。')
print(self.name)
bule_cat=Cat(')
bule_cat.eat()
结果:
3.添加一个动态属性
class Cat:
def __init__(self,name):
print('init方法创建对象的时候执行')
self.name=name
def eat(self):
print('猫吃老鼠。。。。')
print(self.name)
bule_cat=Cat('蓝猫')
bule_cat.eat()
black_cat=Cat('黑猫')
black_cat.eat()
结果:
九、--str--方法
1.打印对象的名称时默认调用的是__str__()方法,此方法默认返回的是对象的内存地址。
class Cat:
def eat(self):
print('吃吃吃吃吃')
cat=Cat()
print(cat)#<__main__.Cat object at 0x0000000002A5E208>
2。想要打印出值,我们可以重写 __str__() 方法打印对象保存的信息。
class Cat:
def __init__(self,name):
print('hhhhhhh')
self.name=name#name为局部变量
def est(self):
print('吃吃吃次')
print(self.name)
def __str__(self):
msg='name的属性的值是{}'.format(self.name)
return msg
cat=Cat('蓝猫')
print(cat)
结果: