类关系/self/特殊成员
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/特殊成员的更多相关文章
- 【建模】UML类关系分析
一.UML类关系分析 1.关联(asociation) 一般是一方拥有另一方对象的指针.箭头的方向是访问方向. 2.聚合(Aggregation)和组合(Composition) 聚合和关联一般不做区 ...
- 设计模式基础:类及类关系的UML表示
设计模式基础:类及类关系的UML表示 2009-10-26 17:00 by 宗哥, 1891 阅读, 1 评论, 收藏, 编辑 UML中,类关系分为这几种,泛化(generalization), 实 ...
- 面向对象的类关系及其C++实现
在面向对象的程序设计中,类之间有6中关系,分别是继承, 组合, 聚合,关联, 依赖,实现,如果使用C语言实现,上面的这些关系通过"结构体包含结构体.结构体包含结构体指针以及函数指针等语法实现 ...
- UML类关系(依赖,关联,聚合,组合,泛化,实现)
转自https://blog.csdn.net/k346k346/article/details/59582926 在学习面向对象设计时,类关系涉及依赖.关联.聚合.组合和泛化这五种关系,耦合度依 ...
- 【c++】类中的const成员
const成员变量 举个例子 #include <iostream> using namespace std; class A { public: A(int size) : SIZE(s ...
- [C++]类的空指针调用成员函数后,会发生什么事?
类的实例调用成员函数的原理 其实不管是通过对象实例或指针实例调用,其实底层调用的过程都是一样的,都是把当前对象的指针作为一个参数传递给被调用的成员函数.通过下面的相关实例代码进行检验: 实验的C++代 ...
- 福利->KVC+Runtime获取类/对象的属性/成员变量/方法/协议并实现字典转模型
我们知道,KVC+Runtime可以做非常多的事情.有了这个,我们可以实现很多的效果. 这里来个福利,利用KVC+Runtime获取类/对象的所有成员变量.属性.方法及协议: 并利用它来实现字典转模型 ...
- 类模板的static成员
下列代码可以通过编译吗?如何修改使其通过编译? template <class T> struct sum { static void foo(T op1 , T op2){ c ...
- 在C++的类中,普通成员函数不能作为pthread_create的线程函数,如果要作为pthread_create中的线程函数,必须是static
在C++的类中,普通成员函数不能作为pthread_create的线程函数,如果要作为pthread_create中的线程函数,必须是static ! 在C语言中,我们使用pthread_create ...
随机推荐
- UML设计九种图例
一.作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分. UML语义:描述基于UML的精确元模型定义. UML表示法:定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语 ...
- Spring4新的javaConfig注解
1.@RestController spring4为了更方便的支持restfull应用的开发,新增了RestController的注解,比Controller注解多的功能就是给底下的RequestMa ...
- C++知识点总结(四)——面向对象的编程细节总结
1.空类的默认函数 一般情况下,对于任意一个类A,如果程序员不显示的声明和定义上述函数,C++编译器将会自动的为A产生4个public inline(公有.内联)的默认函数,这4个函数最常见的形式为: ...
- actionbar中添加searchview并监听期伸缩/打开的方法
首先在xml中设置actionviewclass <item android:id="@+id/m1" android:title="setting" a ...
- 1-1+zookeeper简介
zookeeper是中间件,可以为分布式系统提供协调服务.如果没有分布式系统,zookeeper也发挥不了它的优势.
- __clone()方法
<?php class NbaPlayer{ public $name; } $james = new NbaPlayer(); $james->name = 'James'; echo ...
- U盘文件或目录损坏且无法读取怎么解决
转自 http://jingyan.baidu.com/article/020278118afaec1bcc9ce5df.html U盘文件或目录损坏且无法读取怎么解决 听语音 | 浏览:37504 ...
- bzoj2134 错选单位
传送门 题目 Input n很大,为了避免读入耗时太多, 输入文件只有5个整数参数n, A, B, C, a1, 由上交的程序产生数列a. 下面给出pascal/C/C++的读入语句和产生序列的语句( ...
- Django扩展Auth-User表的几种方法
方式1, OneToOneField from django.contrib.auth.models import Userclass UserProfile(models.Model): user ...
- setTimeout()和setInterval() 何时被调用执行(非多线程).RP
定义 setTimeout()和setInterval()经常被用来处理延时和定时任务.setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式,而setInterval()则可以在每隔 ...