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 授课老师是刘老师
类组合的例子
这个例子写的不是很好,后面再改,应该要遵循大类包含小类,而大部分功能不同的情况下。
python类的相关知识第一部分的更多相关文章
- python类的相关知识第二部分
类的继承.多态.封装 一.类的继承 1.应用场景: 类大部分功能相同,大类包含小类的情况 例如: 动物类 共性:都要吃喝拉撒.都有头有脚 特性: 猫类.走了很轻,叫声特别,喜欢白天睡觉 狗类.的叫声很 ...
- Python面对对象相关知识总结
很有一段时间没使用python了,前两天研究微信公众号使用了下python的django服务,感觉好多知识都遗忘了,毕竟之前没有深入的实践,长期不使用就忘得快.本博的主要目的就是对Python中我认为 ...
- python 类编程相关内容(更新)
python作为面向对象的编程语言,类和对象相关的编程当然是少不了的! python类: class 类名 : 变量名 [ = 初始值 ] …… def 函数名 ( self [ , 其余参数列表 ] ...
- Python中元组相关知识
下面给大家介绍以下元组的相关知识: ·元组可以看成是一个不可更改的list 1.元组的创建 # 创建空元祖 t = () print(type(t)) # 创建只有一个值的元组 # 观察可知元组中如果 ...
- Python 网络编程相关知识学习
Python 网络编程 Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的 ...
- python之类的相关知识
面向对象技术简介 类: 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在函数体之 ...
- python类(4)——自己造第一个轮子
先做简单版本,再一步步增加功能 1.简单目的:要实现这样一个功能,能够连接服务器,登录账号,查询账号委托信息,如果有委托信息,撤销委托. 属性(不同账户之间差别):账户,密码 方法(不同账户之间都要用 ...
- 深入理解ES6之——JS类的相关知识
基本的类声明 类声明以class关键字开始,其后是类的名称:剩余部分的语法看起来像对象字面量中的方法简写,并且在方法之间不需要使用逗号. class Person { //等价于prototype的构 ...
- python 列表list相关知识
List的元素可以是Python的任意数据类型(Boolean,Number,String,List,Dict,Set……) List同样可以使用索引和切片,切片得到的结果也是列表. print(li ...
随机推荐
- mysql 查询锁,解锁语句
一:锁表: 锁定数据表,避免在备份过程中,表被更新 mysql>LOCK TABLES tbl_name READ; 为表增加一个写锁定: mysql>LOCK TABLES tbl_na ...
- 我的Android进阶之旅------>Android关于Activity管理的一个简单封装
怎样管理当前的执行Activity栈,怎样彻底退出程序.本文封装了一个Activity管理类,能够方便随时退出程序. import java.util.Stack; import android.ap ...
- 使用ZBar来读取条形码和二维码的方法
版权声明:本文为博主原创文章,未经博主允许不得转载. 1.使用ZBar项目.下载地址是: http://zbar.sourceforge.net/iphone/index.html 2.新建一个项目. ...
- QT .pro文件 LIBS用法详解
在程序中需要使用到团队其它成员开发的静态库和动态库,起初是知道使用LIBS变量在在.pro文件中指定需要包含的库,但是实际使用的时候却遇到很大麻烦,但其实确实是因为自己看官方文档不太用心造成的. 下面 ...
- vue 单文件组件
在很多vue项目中,我们使用vue.component来定义全局组件,紧接着用new Vue({el:'#container'})在每个页面内指定一个容器元素 这种方式在很多中小规模的项目中运作的很好 ...
- 自己动手搞定支付宝手机Wap网站支付接口 FOR ECShop
支付宝WAP网站版本的支付接口网上整合的比较少,看到很多网站在卖,顿觉无语. 主要是得自己查看支付宝官方提供的SDK中的开发文档. 支付宝sdk下载地址:https://doc.open.alipay ...
- undefined reference to错误
最近在移植开发openssl库时,编译自己的动态库遇到undefined reference to错误,在此记录一下 从openssl官网移植openssl库,得到libssl.a和libcrypto ...
- 真正解决 Android Studio无法启动,gradle下载不了 提示“building “ 项目名”gradle project info”(原创20131216)
最近开始研究Android Studio 开发,但是在开始的时候,一直下载gradle,弄了四天,都没有成功,什么FQ,什么设置gradle路径,都没有解决,但是有一次在公司的电脑上很成功的更新了,完 ...
- mybatis慢查询配置
<?xml version="1.0" encoding="UTF-8"?> <!--suppress SpringFacetInspecti ...
- 简单的SpringCloud 熔断Hystrix
pom配置 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId> ...