zoukankan      html  css  js  c++  java
  • 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 授课老师是刘老师
    类组合的例子

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

  • 相关阅读:
    第十周学习进度
    第九周学习进度
    冲刺阶段站立会议每日任务10
    冲刺阶段站立会议每日任务9
    冲刺阶段站立会议每日任务8
    冲刺阶段站立会议每日任务7
    第八周学习进度
    对输入法的评价
    冲刺阶段站立会议每日任务6
    冲刺阶段站立会议每日任务5
  • 原文地址:https://www.cnblogs.com/xiaoqianghuihui/p/6762466.html
Copyright © 2011-2022 走看看