1.依赖关系
  在方法中引入另一个类的对象
2.关联关系、聚合关系、组合关系

#废话少说 直接上代码===>选课系统

 # coding:utf-8

 class Student(object):
def __init__(self, sid, name, addr):
self.sid = sid
self.name = name
self.addr = addr
self.course = [] def get_info(self):
for el in self.course:
print(el.cid, el.title, el.teacher.tid,\
el.teacher.name,el.teacher.phone) def add_course(self, course):
self.course.append(course) class Course(object):
def __init__(self, cid, title):
self.cid = cid
self.title = title
self.course_list = []
self.teacher = '' def get_info(self, course):
pass def setting_teacher(self, teacher):
self.teacher = teacher class Teacher(object):
def __init__(self, tid, name, phone):
self.tid = tid
self.name = name
self.phone = phone t1 = Teacher(11, "张三", 1815786)
t2 = Teacher(22, "李四", 10086) c1 = Course(1, "python1")
c1.setting_teacher(t1)
c2 = Course(2, "python2")
c2.setting_teacher(t2)
c3 = Course(3, "python3")
c3.setting_teacher(t1)
s1 = Student(111, "alex", "北京")
s1.add_course(c1)
s1.add_course(c2)
s1.add_course(c3)
s1.get_info()

3.继承关系,实现关系
  #可哈希:内部是否有哈希算法
  __hash__
  默认的类和对象都是可哈希的
  self就是你访问方法的那个对象. 先找自己, 然后在找父类的.

废话少说 上代码

 class Base:
def __init__(self, num):
self.num = num def func1(self):
print(self.num)
self.func2() def func2(self):
print(111, self.num) class Foo(Base):
def func2(self):
print(222, self.num) # Base(1) 1 111 1
# Base(2) 2 111 2
# Foo(3) 3 222 3
# 这里面注意换行
lst = [Base(1), Base(2), Foo(3)]
for obj in lst:
obj.func1() # 那笔来吧. 好好算.

4.特殊成员(__init__())
  即带双下划线的
  1.类名() __init__构造方法
  2.对象() __call__() python 特有的

类关系/self/特殊成员的更多相关文章

  1. 【建模】UML类关系分析

    一.UML类关系分析 1.关联(asociation) 一般是一方拥有另一方对象的指针.箭头的方向是访问方向. 2.聚合(Aggregation)和组合(Composition) 聚合和关联一般不做区 ...

  2. 设计模式基础:类及类关系的UML表示

    设计模式基础:类及类关系的UML表示 2009-10-26 17:00 by 宗哥, 1891 阅读, 1 评论, 收藏, 编辑 UML中,类关系分为这几种,泛化(generalization), 实 ...

  3. 面向对象的类关系及其C++实现

    在面向对象的程序设计中,类之间有6中关系,分别是继承, 组合, 聚合,关联, 依赖,实现,如果使用C语言实现,上面的这些关系通过"结构体包含结构体.结构体包含结构体指针以及函数指针等语法实现 ...

  4. UML类关系(依赖,关联,聚合,组合,泛化,实现)

    转自https://blog.csdn.net/k346k346/article/details/59582926   在学习面向对象设计时,类关系涉及依赖.关联.聚合.组合和泛化这五种关系,耦合度依 ...

  5. 【c++】类中的const成员

    const成员变量 举个例子 #include <iostream> using namespace std; class A { public: A(int size) : SIZE(s ...

  6. [C++]类的空指针调用成员函数后,会发生什么事?

    类的实例调用成员函数的原理 其实不管是通过对象实例或指针实例调用,其实底层调用的过程都是一样的,都是把当前对象的指针作为一个参数传递给被调用的成员函数.通过下面的相关实例代码进行检验: 实验的C++代 ...

  7. 福利->KVC+Runtime获取类/对象的属性/成员变量/方法/协议并实现字典转模型

    我们知道,KVC+Runtime可以做非常多的事情.有了这个,我们可以实现很多的效果. 这里来个福利,利用KVC+Runtime获取类/对象的所有成员变量.属性.方法及协议: 并利用它来实现字典转模型 ...

  8. 类模板的static成员

    下列代码可以通过编译吗?如何修改使其通过编译? template <class T> struct sum {   static void foo(T op1 , T op2){    c ...

  9. 在C++的类中,普通成员函数不能作为pthread_create的线程函数,如果要作为pthread_create中的线程函数,必须是static

    在C++的类中,普通成员函数不能作为pthread_create的线程函数,如果要作为pthread_create中的线程函数,必须是static ! 在C语言中,我们使用pthread_create ...

随机推荐

  1. 问题:Server.MapPath;结果:Server.MapPath的命名空间

    习惯用Access的朋友都知道:ADO.NET链接Access数据库经常这么写:strcon="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=&q ...

  2. Javascript 面向对象(一):封装

    Javascript 面向对象编程(一):封装 Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程(OOP)语言, ...

  3. hadoop再次集群搭建(2)-配置免秘钥ssh登录

    SSH对于大多程序员都不陌生,目前主流的云服务提供上也是通过SSH来提供链接的安全保障,比如AWS通过使用下载的私钥(private key)实现与EC2实例安全连接.GitHub通过上传的公钥(pu ...

  4. Markdown简要规则

    We believe that writing is about content, about what you want to say – not about fancy formatting. 我 ...

  5. oracle 调整输出的列宽、行宽

    调整列宽 col 列名 format a20 调整行宽 set linesize 150

  6. 数据库访问优化漏斗法则- 四、减少数据库服务器CPU运算

    数据库访问优化漏斗法则这个优化法则归纳为5个层次:1.减少数据访问次数(减少磁盘访问)2.返回更少数据(减少网络传输或磁盘访问)3.减少交互次数(减少网络传输)4.减少服务器CPU开销(减少CPU及内 ...

  7. day70-oracle 12-Java调用存储过程和存储函数

    我们现在调用的是存储过程和存储函数.用CallableSatement调用存储函数和存储过程. RDBMS:关系数据库.使用标准方式调用存储过程.也就是说:在mysql中调用和在oracle中调用的写 ...

  8. Codeforces #505(div1+div2) B Weakened Common Divisor

    题意:给你若干个数对,每个数对中可以选择一个个元素,问是否存在一种选择,使得这些数的GCD大于1? 思路:可以把每个数对的元素乘起来,然后求gcd,这样可以直接把所有元素中可能的GCD求出来,从小到大 ...

  9. JAVA面向接口的编程思想与具体实现

    面向对象设计里有一点大家已基本形成共识,就是面向接口编程,我想大多数人对这个是没有什么觉得需要怀疑的.        问题是在实际的项目开发中我们是怎么体现的呢? 难道就是每一个实现都提供一个接口就了 ...

  10. Unity3d 脚本与C#Socket服务器传输数据

    Test.cs脚本 ------------------------------------------------------------------------------------------ ...