文章目录
面向对象
类的封装
1.类的定义
首先我们需要创建一个类,一个类中可以包含各种类属性(根据需求),方法(自定义函数)
class 类名 → class Person: (比如定义一个人类,其中通常类名首字母大写)
类下面缩进再进行对属性和函数的定义:
类中常用几个方法:
# init一般用于初始化实例对象基本信息
__init__(self,属性...)
# str一般用于格式化输出实例对象内容
__str__(self)
# del一般在定义实例对象消亡时自动调用该方法,该对象消亡后内存地址回收与同名重建时内存地址不同
__del__(self)
# 以上方法均在接手定义对象内容后自动调用
# 在实例对象输出该方法可以查询到该对象在内存中的所有信息
实例对象.__dict__
# self函数 以下对象谁调用就指向哪个对象
2.实例对象的创建
创建一个实例对象,并使该对象调用类中的方法、属性、实例属性:
变量名 = 类名( ) ------ 括号内填与init对应数量的实例属性内容,
变量名.方法() ------ 调用类中定义的函数
3.封装
例子:👇(我们可以通过创建的类,创建不同实例对象进行输出)
# 定义一个人类
class Person: # (通常 类首字母大写)
def __init__(self,name,age,weight):
self.name = name # 接收定义实例对象的姓名
self.age = age # 接收定义实例对象的年龄
self.weight = weight # 接收定义实例对象的体重
def eat(self):
print("再来点") # 定义一个函数增加体重
weight += 0.5
def run(self):
print("还搁这吃呢,跑步去") # 定义一个函数减少体重
weight -= 0.5
def __str__(self):
# 输出对象内容
return "你的名字是{},今年{}岁,通过努力后的体重是{}"\
.format(self.name,self.age,self.weight)
person1 = Person("陈某",18,70) # 创建一个实例对象
print(person1)
person1.eat()
person1.eat()
print(person1)
person1.run()
person1.run()
print(person1)
"""
你的名字是陈某,今年18岁,通过努力后的体重是70
再来点
再来点
你的名字是陈某,今年18岁,通过努力后的体重是72
还搁这吃呢,跑步去
还搁这吃呢,跑步去
你的名字是陈某,今年18岁,通过努力后的体重是71.0
"""
4.私有属性
# 定义一个人类
class Person: # (通常 类首字母大写)
def __init__(self, name, weight):
self.name = name # 接收实例对象的姓名
self.__weight = weight # 接收实例对象的体重
def __str__(self):
# 输出对象内容
return "你的名字是{},体重是{}".format(self.name,self.__weight)
person1 = Person("陈某",70)
person1.__weight = 100
print(person1)
print(person1.__dict__)
"""
你的名