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 ...
随机推荐
- javascript跨域訪问探索之旅
需求: 近期工作负责一个互联网应用A(我公司应用)与还有一个互联网应用B进行通讯.通讯的方式是这种:还有一个互联网应用某些表单信息须要从我公司的互联网应用获取.首先用户訪问互联网应用B ...
- MVC页面跳转,路径重复的问题
window.location.replace("../Home/xxx") 这是js路径跳转的示范,如果普通超链接也一样 前面加一个../
- Java遍历包中所有类
PackageUtil 类 import java.io.File; import java.net.URL; import java.net.URLClassLoader; import java. ...
- java 发送带Basic Auth认证的http post请求实例代码
构造http header private static final String URL = "url"; private static final String APP_KEY ...
- CCNA2.0笔记_ipv6的EIGRP
IPv6的eigrp特征: 邻居发现 增量更新 快速收敛 负载均衡 三个表 -邻居表 -拓扑表 -路由表 配置ipv6的eigrp Router(config)#ipv6 unicast-routin ...
- Compiler Error C2872: ambiguous symbol
参考资料:http://blog.csdn.net/greytree/article/details/354530 刚才写的程序报错ERROR C2872(CL.exe)原因很简单 ZThread有定 ...
- 如何将自己的网站分享到QQ空间,微信,微博等等。
逛一些网站的时候经常会看到右侧挂个分享栏,让用户把自己的站分享到qq空间,微信等等,所以自己也研究了下,把他加到了自己的网站上,喜欢的可以先看看效果:去转盘网,不多说了,直接上代码: window._ ...
- 解决linux下/etc/rc.local开机器不执行的原因
前不久因项目需要写了开机启动其他程序的shell脚本,因工作忙,调试完给了技术支持人员,也没去注意过. 到后来,有几台服务器突然被重启了,这时候领导问,怎么开机启动的脚本没起作用,还被批了一顿,哎,做 ...
- 移动端上下滑动事件之--坑爹的touch.js
原文 http://blog.csdn.net/minidrupal/article/details/39611605 移动端页面的盛行,微信的便利的页面推广等等,让越来越多的css3效果和htm ...
- jQuery中bind函数绑定多个事件
名人名言:道德是真理之花.——雨果 在jQuery中绑定多个事件名称是,使用空格隔开,举例如下: $("#foo").bind("mouseenter mouseleav ...