对象的实例化
# 学生类
# class Student:
# # def __init__(self, name, age, gender):
# # '''
# # 该方法就一个功能>>>:给对象添加独有的数据
# # :param name:
# # :param age:
# # :param gender:
# # '''
# # self.name = name # obj.__dict__['name'] = name
# # self.age = age # obj.__dict__['age'] = age
# # self.gender = gender
# # 学生类公共的数据
# school = '清华大学'
# # 学生类公共的功能
# def choose_course(self):
# print('学生选课功能')
# obj1 = Student()
# print(obj1.__dict__)
# 给对象添加特征属性
'''方案1:逐步添加'''
# obj1.name = 'king'
# obj1.age = 18
# obj1.gender = 'male'
# print(obj1.name)
# 这样写如果要创建多个对象,并添加各自的特征属性代码会冗余
'''方案2:将冗余的添加步骤封装成函数'''
# def init(obj, name, age, gender):
# obj.name = name
# obj.age = age
# obj.gender = gender
# init(obj1, 'king', 18, 'male')
# print(obj1.name)
# print(obj1.age)
# print(obj1.gender)
'''方案3:简单的封装成'''
# class Student:
# def get_obj(obj, name, age, gender):
# '''
# 该方法就一个功能>>>:给对象添加独有的数据
# :param name:
# :param age:
# :param gender:
# '''
# obj.name = name # obj.__dict__['name'] = name
# obj.age = age # obj.__dict__['age'] = age
# obj.gender = gender
# # 学生类公共的数据
# school = '清华大学'
# # 学生类公共的功能
# def choose_course(self):
# print('学生选课功能')
# obj1 = Student()
# # print(obj1.__dict__)
# # obj1.get_obj(obj1, 'king', 18, 'male') # 只能写3个参数,第一个形参是会自动将对象传入的,不需要写明
# Student.get_obj(obj1, 'king', 18, 'male')
# print(obj1.name)
'''方案4:类中针对给对象创建独有数据的函数名 专门定义了一个固定的方法'''
# class Student:
# def __init__(self, name, age, gender):
# '''
# 该方法就一个功能>>>:给对象添加独有的数据
# :param name:
# :param age:
# :param gender:
# '''
# self.name = name # obj.__dict__['name'] = name
# self.age = age # obj.__dict__['age'] = age
# self.gender = gender
# # 学生类公共的数据
# school = '清华大学'
# # 学生类公共的功能
# def choose_course(self):
# print('学生选课功能')
# obj1 = Student('king', 18, 'male') # 由于python给我们准备好的__init__函数会自动执行,并传入对象,因此在创建对象的时候就可以直接写入特征属性了
# print(obj1.name)
'''
类中的__init__方法会在类产生对象的时候自动执行
类产生对象的具体步骤
1.先创建一个没有独有数据的空对象 {}
2.将空对象和类括号内传入的数据一并交给__init__执行
__init__的第一个参数就是对象本身
3.将创建好的对象自动返回
python提供这种方式是为了减少代码的编写
ps:针对括号内第一个形参self其实就是一个普通的变量名而已
只不过该变量名将来专门接受对象的,所以给它起了个固定的名字叫self
'''
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析