day 23 面向对象的命名空间与组合
创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性
而类有两种属性:静态属性和动态属性
1. 静态属性就是直接在类中定义的变量
2.动态属性就是定义在类中的方法.
其中类的数据属性是共享给所有对象的.
>>>id(egg.role)
4341594072
>>>id(Person.role)
4341594072
类的动态属性是绑定到所有的对象的。
>>>egg.attack
<bound method Person.attack of <__main__.Person object at 0x101285860>>
>>>Person.attack
<function Person.attack at 0x10127abf8>
def 类名:
#__init__ 内置 初始化方法
def __init__(self):
self.name ='alex'
#静态属性 --变量
静态属性 =‘中国’ #是直接可以用类名.属性名调用的.
#动态属性--方法(函数)
def attack(self):pass
def bite (self):pass
实例化 创造对象 执行init方法
对象 = 类名()
print(对象.__dict__)
软件重用的重要方式除了继承之外还有另外一种方式,即:组合
组合指的是,在一个类中以另外一个类的对象作为数据属性,称为类的组合
求环的面积
from math import pi
class Circle:
def __init__(self,r):
self.r =r
def area(self):
return pi*(self.r**2)
def perimeter(self):
return 2*pi*self.r
class Ring:
def __init__(self,outer,inner):
self.outer =Circle(outer)#=
self.inner =Circle(inner)
def area(self):
return self.outer.area() -self.inner.area()
def perimeter(self):
return self.outer.perimeter() +self.inner.perimeter() r = Ring(10,3)
print(r.area())
print(r.perimeter())
老师与生日的例题
class Brithday:
def __init__(self,year,month,day):
self.year = year
self.month =month
self.day =day
class Teacher:
def __init__(self,name,sex,course,birth):
self.name=name
self.sex =sex
self.course =course
self.birth =shengri
shengri = Brithday(1993,3,6)
laoshi = Teacher("alex",'male',"python",shengri)
print(shengri)
import time
if shengri.month== time.localtime().tm_mon and shengri.day == time.localtime().tm_mday :
print("%s生日快乐," %(laoshi.name))
print(time.localtime().tm_year - shengri.year ) 输出结果:
<__main__.Brithday object at 0x020F9930>
alex生日快乐,
day 23 面向对象的命名空间与组合的更多相关文章
- python基础--面向对象基础(类与对象、对象之间的交互和组合、面向对象的命名空间、面向对象的三大特性等)
python基础--面向对象 (1)面向过程VS面向对象 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. ...
- day24 面向对象,交互,组合,命名空间,初始继承
面向对象的命名空间: #属性:静态属性 (直接和类名关联或者直接定义在class下的变量) # 对象属性 (在类内和self关联,在类外和对象名关联的变量) # 动态属性(函数) class Foo: ...
- python全栈开发 * 23 面向对象 知识点汇总 * 180704
23 面向对象 -----特殊方法 1. isinstance(obj,类名) 判断对象是否是此类实例化或者此类的子类实例化出来的class A:passclass B(A):passb1=B()pr ...
- day23:类的命名空间和组合
1,类属性:静态属性,方法:动态属性:双下init方法,每当我们调用类的时候就会自动的触发这个方法,默认传self,在init方法里面可以对self赋值:在类的内部,self就是一个对象,我们自己实例 ...
- python学习之老男孩python全栈第九期_day023知识点总结——类和对象命名空间、组合
一. 类和对象命名空间类里 可以定义两种属性: 1. 静态属性 2. 动态属性 class Course: language = 'Chinese' def __init__(self, teache ...
- day 23-1 类的命名空间、组合
类的命名空间 类与对象命名空间 类里 可以定义两种属性 静态属性 动态属性 类中的静态变量 可以被对象和类调用对于不可变数据类型来说,类变量最好用类名操作对于可变数据类型来说,对象名的修改是共享的,重 ...
- Day 23 类的继承,派生,组合,菱形继承,多态与多态性
类的继承 继承是一种新建类的方式,新建的类称为子类,被继承的类称为父类 继承的特性是:子类会遗传父类的属性 继承是类与类之间的关系 为什么用继承 使用继承可以减少代码的冗余 对象的继承 python中 ...
- Python学习日记(二十三) 类命名空间和组合
类命名空间 在一个类中它的函数(方法)属于动态属性,直接定义的变量属于静态属性 首先先定义一个类,并在这个类里面加入静态变量.属性等然后将一个对象实例化 class Fighter: #定义一个战机的 ...
- day 23 面向对象二
复习 '''1.面向过程与面向对象 过程:程序流程化,可拓展性差 对象:程序流程多样化,可拓展性强 变量 | 函数 => 属性 | 方法:前者直接使用,通过所属者.语法调用2.拥 ...
随机推荐
- Android可以子线程更新UI?
初了解Android的时候,就知道Android是不能在子线程更新UI的,不然程序会直接抛出异常,告诉你,别给我在自线程搞事情! 但是,这个是针对普通的view做的限制,而TextureView,Su ...
- tomcat内存溢出问题解决思路
.修改启动时内存参数.并指定JVM时区 (在windows server 下时间少了8个小时) 在Tomcat上运行j2ee项目代码时,经常会出现内存溢出的情况,解决办法是在系统参数中增加系统参数: ...
- 基于KVM的qemu中宿主机和虚拟机间的通信
qga是一个运行在虚拟机内部的普通应用程序(可执行文件名称默认为qemu-ga,服务名称默认为qemu-guest-agent),其目的是实现一种宿主机和虚拟机进行交互的方式,这种方式不依赖于网络,而 ...
- jquery阻止表单提交
<form action="" method="post" onSubmit="return confirm();" > < ...
- 原型工具之团队协作: Axure VS Mockplus
一款软件产品的诞生,必然会经历一个过程:需求分析.设计.开发.测试.上线.如此反复迭代.而设计阶段中,原型设计.制作.交流.审核.迭代,是软件设计和开发的重要保障. 简单的一段话,我们可以解读出很多隐 ...
- 创建cookie
cookie的创建using System;using System.Collections.Generic;using System.Linq;using System.Web;using Syst ...
- XAMPP Apache + MariaDB + PHP + Perl
https://www.apachefriends.org/zh_cn/index.html 什么是XAMPP? XAMPP是最流行的PHP开发环境 XAMPP是完全免费且易于安装的Apache发行版 ...
- bootstrap-treeview的 简单使用
理论:http://blog.csdn.net/babyxue/article/details/73835444 插依赖Bootstrap 和jQuery <link href="~/ ...
- hibernate hql where语句拼接工具类
package com.zhaoshijie.tree.other; /** * hibernate HQL WHERE语句工具类 * * @author 赵士杰 * */public class H ...
- MySQL 分表和分区
1.为什么需要分表和分区 在开发的过程中,经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表.这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,如果涉及联合查询的情况,性能更加 ...