一、类的相关概念

(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 授课老师是刘老师

类组合的例子

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

python类的相关知识第一部分的更多相关文章

  1. python类的相关知识第二部分

    类的继承.多态.封装 一.类的继承 1.应用场景: 类大部分功能相同,大类包含小类的情况 例如: 动物类 共性:都要吃喝拉撒.都有头有脚 特性: 猫类.走了很轻,叫声特别,喜欢白天睡觉 狗类.的叫声很 ...

  2. Python面对对象相关知识总结

    很有一段时间没使用python了,前两天研究微信公众号使用了下python的django服务,感觉好多知识都遗忘了,毕竟之前没有深入的实践,长期不使用就忘得快.本博的主要目的就是对Python中我认为 ...

  3. python 类编程相关内容(更新)

    python作为面向对象的编程语言,类和对象相关的编程当然是少不了的! python类: class 类名 : 变量名 [ = 初始值 ] …… def 函数名 ( self [ , 其余参数列表 ] ...

  4. Python中元组相关知识

    下面给大家介绍以下元组的相关知识: ·元组可以看成是一个不可更改的list 1.元组的创建 # 创建空元祖 t = () print(type(t)) # 创建只有一个值的元组 # 观察可知元组中如果 ...

  5. Python 网络编程相关知识学习

    Python 网络编程 Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的 ...

  6. python之类的相关知识

    面向对象技术简介 类: 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在函数体之 ...

  7. python类(4)——自己造第一个轮子

    先做简单版本,再一步步增加功能 1.简单目的:要实现这样一个功能,能够连接服务器,登录账号,查询账号委托信息,如果有委托信息,撤销委托. 属性(不同账户之间差别):账户,密码 方法(不同账户之间都要用 ...

  8. 深入理解ES6之——JS类的相关知识

    基本的类声明 类声明以class关键字开始,其后是类的名称:剩余部分的语法看起来像对象字面量中的方法简写,并且在方法之间不需要使用逗号. class Person { //等价于prototype的构 ...

  9. python 列表list相关知识

    List的元素可以是Python的任意数据类型(Boolean,Number,String,List,Dict,Set……) List同样可以使用索引和切片,切片得到的结果也是列表. print(li ...

随机推荐

  1. Atitti. 语法树AST、后缀表达式、DAG、三地址代码

    Atitti. 语法树AST.后缀表达式.DAG.三地址代码 抽象语法树的观点认为任何复杂的语句嵌套情况都可以借助于树的形式加以描述.确实,不得不承认应用抽象语法树可以使语句翻译变得相对容易,它很好地 ...

  2. Powershell对象条件查询筛选

    在 Windows PowerShell 中,与所需的对象数量相比,通常生成的对象数量以及要传递给管道的对象数量要多得多.可以使用 Format cmdlet 来指定要显示的特定对象的属性,但这并不能 ...

  3. IE首页被篡改(手动修复)

    所谓手动修复,即以不变应万变,修改注册表,其实工具软件也只是帮你代工而已. win + R 打开 “运行”,键入 “regedit.exe” 打开注册表编辑器,在 路径 HKEY_LOCAL_MACH ...

  4. Entity简单使用

    urlEntity: //定义 package com.example.cc.ecustapp.Model; /** * Created by weijiawang on 2016/3/8. */pu ...

  5. ECC加密算法原理入门介绍

    前言 同RSA(Ron Rivest,Adi Shamir,Len Adleman三位天才的名字)一样,ECC(Elliptic Curves Cryptography,椭圆曲线密码编码学)也属于公开 ...

  6. DelphiXE8怎么使用调试模式(小米手机2)

    需求:在开发Android程序时,大家一直是使用ShowMessage.其实XE是支持下断点的. 操作:小米手机2: 1.小米手机2用USB线,连到电脑上. 2.小米手机2-设置-关于手机-" ...

  7. 获取JQuery UI tabs中被选中的tabs的方法

    JQuery标签事件处理实例 如果你正在使用JQuery tabs而且想从基本的功能扩展到自定义的功能,这是你最好知道如何处理JQuery的点击事件. 在这篇文章中: 1.回顾如何添加当tab被点击时 ...

  8. spring cloud 启动报错问题 Input length = 1

    Caused by: org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input l ...

  9. kaggle比赛之youtube视频分类示例

    1.训练模型:建bucket,建job,提交运行. BUCKET_NAME=gs://${USER}_yt8m_train_bucket_logisticmodel # (One Time) Crea ...

  10. Apollo 刨析:简介

      Apollo是配置在IIS服务器上的一个Web站点,它使用了.NET4.0和ASP.Net的技术. 代码是C#编写的.是基于ASP.NET MVC3的Web开发框架上编写的一个应用. 它使用到了N ...