python类的相关知识第一部分

时间:2023-03-09 15:46:13
python类的相关知识第一部分

一、类的相关概念

(1)、什么是类

具有同种属性的对象称为类,是个抽象的概念。比如说:汽车、人、狗、神;

(2)、什么是对象或实例

日常生活中的所有东西都是对象,是类的实例化。比如说:推土车是汽车的实例化,集数据属性和方法属性为一身的就是一个对象。

二、类属性、实例属性

(1)、类属性

类属性从字面意义上说就是类所具有的属性,可以理解为一个类中的全局变量。

(2)、实例属性

类实例化成实例对象所具有的属性

举个例子:

 class School_cla:
s_name = "清华" 这个就是类属性
def __init__(self,username,title):
self.username = username 类实例化后__init__函数里面的都是实例属性
self.title = title def teach_knowlage(self):
print("%s 正在教学" % self.username) def up_level(self):
print("%s 是%s" %(self.username,self.title)) print(School_cla.__dict__)
p1 = School_cla("liu","engneer")
print(p1.__dict__) ###输出
{'__module__': '__main__', 's_name': '清华', '__init__': <function School_cla.__init__ at 0x000001F21A7FC8C8>, 'teach_knowlage': <function School_cla.teach_knowlage at 0x000001F21A7FC950>, 'up_level': <function School_cla.up_level at 0x000001F21A7FC9D8>, '__dict__': <attribute '__dict__' of 'School_cla' objects>, '__weakref__': <attribute '__weakref__' of 'School_cla' objects>, '__doc__': None}
{'username': 'liu', 'title': 'engneer'}

(3)、类属性的增删改

 class School_cla:
s_name = "清华"
def __init__(self,username,title):
self.username = username
self.title = title def teach_knowlage(self):
print("%s 正在教学" % self.username) def up_level(self):
print("%s 是%s" %(self.username,self.title))
School_cla.addr = "北京" 增加
School_cla.name = "北大" 修改
del School_cla.name 删除
print(School_cla.__dict__) ##显示
{'__module__': '__main__', 's_name': '清华', '__init__': <function School_cla.__init__ at 0x00000260F0B0C950>, 'teach_knowlage': <function School_cla.teach_knowlage at 0x00000260F0B0C9D8>, 'up_level': <function School_cla.up_level at 0x00000260F0B0CA60>, '__dict__': <attribute '__dict__' of 'School_cla' objects>, '__weakref__': <attribute '__weakref__' of 'School_cla' objects>, '__doc__': None, 'addr': '北京'}

(4)、实例属性的增删改

class School_cla:
s_name = "清华"
def __init__(self,username,title):
self.username = username
self.title = title def teach_knowlage(self):
print("%s 正在教学" % self.username) def up_level(self):
print("%s 是%s" %(self.username,self.title)) p1 = School_cla("liu","engneer")
p1.money = "" 增加
p1.username="ma" 修改
del p1.title 删除
print(p1.__dict__) ##显示
{'username': 'ma', 'money': ''}

三、类的组合

类的组合是将类与类之前关联起来的一种手段

如下例子:

 class School:
def __init__(self,name,addr,teacher,course):
self.name = name
self.addr = addr
self.teacher = teacher
self.course = course def enrol_students(self):
print("%s 正在招收 %s 学生" % (self.name,self.course)) class Course:
def __init__(self,name,money,teacher):
self.name = name
self.money = money
self.teacher = teacher def course_teacher(self):
print("%s 的授课老师是%s" % (self.name,self.teacher)) class Teacher:
def __init__(self,name,course,money):
self.name = name
self.course = course
self.money = money def make_money(self):
print("%s 教受 %s 的课程,每节课可以赚到%s" % (self.name,self.course,self.money)) user1 = Teacher("刘老师","python","")
user2 = Teacher("林老师","linux","")
user3 = Teacher("何老师","C","")
# school1 = School()
course_msg = {
"": "python",
"": "linux",
"": "C",
}
user_msg = {
"": "刘老师",
"": "林老师",
"": "何老师",
}
school_msg = {
"": "北京",
"": "上海",
"": "广州",
}
while True:
print("欢迎来到清华学习")
print(school_msg)
print(course_msg)
print(user_msg)
s_input = input("选择授课地点:")
c_input = input("请选择要学的课程:")
u_input = input("请选择授课老师:")
user_dict = {
"":user1,
"":user2,
"":user3,
}
course_money = {
"python":30000,
"linux":20000,
"C":25000,
}
s1=School("清华",school_msg[s_input],user_dict[u_input],course_msg[c_input])
c1 = Course(course_msg[c_input],course_money[user_dict[u_input].course],user_dict[u_input])
print("你选择了%s 在%s的校区学校,选择了%s 课程,学费是%s 授课老师是%s" %(s1.name,s1.addr,c1.name,c1.money,s1.teacher.name))
break #输出
欢迎来到清华学校
{'': '北京', '': '上海', '': '广州'}
{'': 'python', '': 'linux', '': 'C'}
{'': '刘老师', '': '林老师', '': '何老师'}
选择授课地点:1
请选择要学的课程:1
请选择授课老师:1
你选择了清华 在北京的校区学习,选择了python 课程,学费是30000 授课老师是刘老师

类组合的例子

这个例子写的不是很好,后面再改,应该要遵循大类包含小类,而大部分功能不同的情况下。