python类的相关知识第一部分

一、类的相关概念

(1)、什么是类

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

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

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

二、类属性、实例属性

(1)、类属性

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

(2)、实例属性

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

举个例子:

 1 class School_cla:
 2     s_name = "清华"  这个就是类属性
 3     def __init__(self,username,title):
 4         self.username = username  类实例化后__init__函数里面的都是实例属性
 5         self.title = title
 6 
 7     def teach_knowlage(self):
 8         print("%s 正在教学" % self.username)
 9 
10 
11     def up_level(self):
12         print("%s 是%s" %(self.username,self.title))
13 
14 print(School_cla.__dict__)
15 p1 = School_cla("liu","engneer")
16 print(p1.__dict__)
17 
18 ###输出
19 {'__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}
20 {'username': 'liu', 'title': 'engneer'}

(3)、类属性的增删改

 1 class School_cla:
 2     s_name = "清华"
 3     def __init__(self,username,title):
 4         self.username = username
 5         self.title = title
 6 
 7     def teach_knowlage(self):
 8         print("%s 正在教学" % self.username)
 9 
10 
11     def up_level(self):
12         print("%s 是%s" %(self.username,self.title))
13 School_cla.addr = "北京"  增加
14 School_cla.name = "北大"  修改
15 del School_cla.name   删除
16 print(School_cla.__dict__)
17 
18 ##显示
19 {'__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 = "40000"   增加
p1.username="ma"    修改
del p1.title                  删除
print(p1.__dict__)

##显示
{'username': 'ma', 'money': '40000'}

三、类的组合

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

如下例子:

 1 class School:
 2     def __init__(self,name,addr,teacher,course):
 3         self.name = name
 4         self.addr = addr
 5         self.teacher = teacher
 6         self.course = course
 7 
 8     def enrol_students(self):
 9         print("%s 正在招收 %s 学生" % (self.name,self.course))
10 
11 class Course:
12     def __init__(self,name,money,teacher):
13         self.name = name
14         self.money = money
15         self.teacher = teacher
16 
17     def course_teacher(self):
18         print("%s 的授课老师是%s" % (self.name,self.teacher))
19 
20 class Teacher:
21     def __init__(self,name,course,money):
22         self.name = name
23         self.course = course
24         self.money = money
25 
26     def make_money(self):
27         print("%s 教受 %s 的课程,每节课可以赚到%s" % (self.name,self.course,self.money))
28 
29 user1 = Teacher("刘老师","python","10000")
30 user2 = Teacher("林老师","linux","6000")
31 user3 = Teacher("何老师","C","20000")
32 # school1 = School()
33 course_msg = {
34     "1": "python",
35     "2": "linux",
36     "3": "C",
37 }
38 user_msg = {
39     "1": "刘老师",
40     "2": "林老师",
41     "3": "何老师",
42 }
43 school_msg = {
44     "1": "北京",
45     "2": "上海",
46     "3": "广州",
47 }
48 while True:
49     print("欢迎来到清华学习")
50     print(school_msg)
51     print(course_msg)
52     print(user_msg)
53     s_input = input("选择授课地点:")
54     c_input = input("请选择要学的课程:")
55     u_input = input("请选择授课老师:")
56     user_dict = {
57         "1":user1,
58         "2":user2,
59         "3":user3,
60     }
61     course_money = {
62         "python":30000,
63         "linux":20000,
64         "C":25000,
65     }
66     s1=School("清华",school_msg[s_input],user_dict[u_input],course_msg[c_input])
67     c1 = Course(course_msg[c_input],course_money[user_dict[u_input].course],user_dict[u_input])
68     print("你选择了%s 在%s的校区学校,选择了%s 课程,学费是%s 授课老师是%s" %(s1.name,s1.addr,c1.name,c1.money,s1.teacher.name))
69     break
70 
71 
72 #输出
73 欢迎来到清华学校
74 {'1': '北京', '2': '上海', '3': '广州'}
75 {'1': 'python', '2': 'linux', '3': 'C'}
76 {'1': '刘老师', '2': '林老师', '3': '何老师'}
77 选择授课地点:1
78 请选择要学的课程:1
79 请选择授课老师:1
80 你选择了清华 在北京的校区学习,选择了python 课程,学费是30000 授课老师是刘老师
类组合的例子

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

原文地址:https://www.cnblogs.com/xiaoqianghuihui/p/6762466.html