1.类的定义

  

#类的定义

      class  类名:
属性='xxx'
def __init__(self):         
      self.name='enon'
     self.age=18     def other_func: pass
  •   在定义类的时候,类内的代码就已经执行了
  • 在定义类时需要在类内定义一个叫__init__的函数,该函数在调用时才会执行
  • self是位置参数,用于在调用函数时接受传入的第一个参数,该参数为调用此方法的object本身
#类的实例化==》对象

#1. 若类内部没有设置__init__方法,则生成对象时自身的特殊属性加上用如#下方法
class1=ClassName()
class1.name='enon'
class1.age=18 #2.若类内部有__init__方法
class1=ClassName('enon',18)

  调用类时发生了哪些事:

1、首先会产生一个空对象stu1
2、会自动触发类内部的__init__函数
3、然后将空对象stu1连同调用类时括号内的参数组成(stu1,"egon",18),将这3个参数一起传给__init__函数

2、对象

  1.  类的实例化:调用类产生对象的过程称为类的实例化,实例化的结果是一个对象,或称为一个实例
  2.   对象属性的查找顺序:先找对象自己的名称空间----》类的名称空间
  3.   类的数据属性:是给对象用的,而且直接共享给所有对象用的,内存地址都一样
  4. 类的函数属性:也是给对象用,但是绑定给对象用的,绑定到不同的对象就是不同的
  5.   绑定方法,内存地址都不一样,但其实只想都是同一个功能
  6. 绑定方法的特殊之处:

            1、 绑定给谁就应该由谁来调用,

        2、谁来调用就会把谁当做第一个参数传入

  • 7.     一切皆对象:在python3中统一了类与类型的概念,类即类型

作业:

4月11日

    1、定义学校类,实例化出:北京校区、上海校区两个对象
校区独有的特征有:
校区名=“xxx”
校区地址={'city':"所在市",'district':'所在的区'}
多们课程名=['xxx','yyy','zzz']
多个班级名=['xxx','yyy','zzz'] 校区可以:
1、创建班级
2、查看本校区开设的所有班级名
3、创建课程
4、查看本校区开设的所有课程名 2、定义出班级类,实例化出两个班级对象
班级对象独有的特征:
班级名=‘xxx’
所属校区名=‘xxx’
多门课程名=['xxx','yyy','zzz']
多个讲师名=['xxx','xxx','xxx'] 班级可以:
1、查看本班所有的课程
2、查看本班的任课老师姓名 3、定义课程类,实例化出python、linux、go三门课程对象
课程对象独有的特征:
课程名=‘xxx’
周期=‘3mons’
价格=3000 课程对象可以:
1、查看课程的详细信息 4、定义学生类,实例化出张铁蛋、王三炮两名学生对象
学生对象独有的特征:
学号=10
名字=”xxx“
班级名=['xxx','yyy']
分数=33 学生可以:
1、选择班级
3、注册,将对象序列化到文件 5、定义讲师类,实例化出egon,lqz,alex,wxx四名老师对象
老师对象独有的特征:
名字=“xxx”
等级=“xxx” 老师可以:
1、修改学生的成绩
import os
import json class Campus:
def __init__(self,name,city,area,courses,classs):
self.name=name
self.address={'city':city,'district':area}
self.courses=courses
self.classs=classs
def create_class(self,name,campus,courses,teachers):
get_class=Classs(name,campus,courses,teachers)
self.classs.append(get_class.name)
print(get_class.__dict__)
def get_classs(self):
print(self.classs)
def create_course(self,name,cycle,price):
get_course = Course(name,cycle,price)
self.classs.append(get_course.name)
return get_course
def get_courses(self):
print(self.courses) class Classs:
def __init__(self,name,campus,courses,teachers):
self.name=name
self.campus=campus
self.courses=courses
self.teachers=teachers
def get_courses(self):
print(self.courses)
def get_teachers(self):
print(self.teachers) class Course:
def __init__(self,name,cycle,price):
self.name=name
self.cycle=cycle
self.price=price def get_course_info(self):
print(self.__dict__) class Student:
def __init__(self,id,name,classs,score):
self.id=id
self.name=name
self.classs=classs
self.score=score def chose_classs(self,classs):
self.classs.append(classs)
print(self.classs)
def register(self):
path=os.path.join(os.path.dirname(__file__),'%s.json'%self.name)
self=self.__dict__
with open(path,'wt',encoding='utf-8')as f:
json.dump(self,f) class Teacher:
def __init__(self,name,level):
self.name = name
self.level=level
def update_score(self,student,score):
student.score=score courses=['XXX','YYY','ZZZ']
classs=['python','java','linux']
teachers=['egon','lqz','alex'] # beijing=Campus('北京校区','北京','朝阳区',courses,classs)
# shanghai=Campus('上海校区','上海','浦东新区',courses,classs)
# beijing.create_class('python','上海校区',courses,teachers)
# print(beijing.__dict__)
# print(shanghai.__dict__) # pathon=Classs('python','上海校区',courses,teachers)
# pathon.get_courses() student=Student(10,'lxx',classs,33)
# student.register() teacher=Teacher('egon',2)
teacher.update_score(student,59)
print(student.score)

4月11日 python学习总结 对象与类的更多相关文章

  1. 6月11日 python学习总结 框架理论

    Web框架本质及第一个Django实例   Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web ...

  2. 5月11日 python学习总结 子查询、pymysql模块增删改查、防止sql注入问题

    一.子查询 子查询:把一个查询语句用括号括起来,当做另外一条查询语句的条件去用,称为子查询 select emp.name from emp inner join dep on emp.dep_id ...

  3. 4月2日 python学习总结

    昨天内容回顾: 1.迭代器 可迭代对象: 只要内置有__iter__方法的都是可迭代的对象 既有__iter__,又有__next__方法 调用__iter__方法==>得到内置的迭代器对象 调 ...

  4. 4月12日 python学习总结 继承和派生

    一.继承 什么是继承:   继承是一种新建类的方式,在python中支持一个子类继承多个父类   新建类称为子类或派生类   父类可以称之为基类或者超类   子类会遗传父类的属性 2.  为什么继承 ...

  5. 4月8日 python学习总结 模块与包

    一.包 #官网解释 Packages are a way of structuring Python's module namespace by using "dotted module n ...

  6. 4月10日 python学习总结 模块和面向对象

    1.hashlib  1.什么叫hash:hash是一种算法,该算法接受传入的内容,经过运算得到一串hash值 2.hash值的特点是:2.1 只要传入的内容一样,得到的hash值必然一样=====& ...

  7. 4月17日 python学习总结 反射、object内置方法、元类

    一.反射 下述四个函数是专门用来操作类与对象属性的,如何操作? 通过字符串来操作类与对象的属性,这种操作称为反射 class People: country="China" def ...

  8. 5月31日 python学习总结 JavaScript概述

    JavaScript概述 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECM ...

  9. 6月15日 python学习总结 Django模板语言相关内容

    Django模板语言相关内容   Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...

随机推荐

  1. 用maven创建项目引入js文件位置

    用maven创建项目引入js文件位置 截图如下:

  2. 《PHP程序员面试笔试宝典》——如何回答算法设计问题?

    如何巧妙地回答面试官的问题? 本文摘自<PHP程序员面试笔试宝典> 程序员面试中的很多算法设计问题,都是历年来各家企业的"炒现饭",不管求职者以前对算法知识掌握得是否扎 ...

  3. 10、Linux基础--find、正则、文本过滤器grep

    笔记 1.晨考 1.每个月的3号.5号和15号,而且这天是星期六时执行 00 00 3,5,15 * 6 2.每天的3点到15点,每隔3分钟执行一次 */3 3-15 * * * 3.每周六早上2点半 ...

  4. java运行原理、静态代理和动态代理区分

    1.java的编译和运行原理: ■ 编译:将源文件 .java 文件,通过编译器(javac 命令) 编译成 字节码文件 .class 文件. ■ 运行,通过类加载器(以二进制流形式)把字节码加载进J ...

  5. Python 随机(random)模块的不可预测之美

    1 . 概念 1.1 真.伪随机数 大部分的计算机语言都会提供 API 生成随机数,此类 API 称为随机数生成器. 计算机可以用随机数模拟现实世界中的各种随机概率问题,没有随机生成器的编程语言不是& ...

  6. 把SQLAlchemy查询对象转换成字典

    1-假设查出来的为单个对象 1-1 在model.py中为模型对象添加字典转换函数: from exts import db class User(db.Model): __tablename__ = ...

  7. ISISv4协议测试——网络测试仪实操

    文章关键词 ISIS协议:路由协议:协议测试: 一.文章简介: isis是一种与ospf很相似的网络协议(属于动态路由协议),它被应用在巨大规模网络,如运营商以及银行等.同样的它也是基于链路状态算法, ...

  8. 论文解读(Geom-GCN)《Geom-GCN: Geometric Graph Convolutional Networks》

    Paper Information Title:Geom-GCN: Geometric Graph Convolutional NetworksAuthors:Hongbin Pei, Bingzhe ...

  9. 【C# 异常处理】 开端

    异常概述 在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的,比如:客户输入数据的格式,读取文件是否存在,网络是 ...

  10. MySQL通过bin log日志恢复数据|手撕MySQL|对线面试官

    关注微信公众号[程序员白泽],进入白泽的知识分享星球 前言 作为<手撕MySQL>系列的第二篇文章,今天介绍一下MySQL的二进制日志(bin log),注意不要和MySQL的InnoDB ...