继续学习,不要松懈

#!/usr/bin/env python

# coding:utf-8

class Campus:

def __init__(self,name,addr,type):

self.Name = name

self.Addr = addr

self.Type = type

def details(self):

print("学样的详细信息, 名称:%s 地址:%s 类型:%s" %(self.Name,self.Addr,self.Type) )

c1 = Campus("南京大学","江苏南京","")

print(c1.__dict__)

print(Campus.__dict__) # 注意实例字典与类的字典的区别

c1.details()

Campus.details(c1) # 使用类去调用方法时,需要传入具体的实例参数

#### 也推荐看看廖雪峰的教程: https://www.bilibili.com/video/av3803706?from=search&seid=6691387782253130457

#####

class Room:

clr = '可选的,默认白色'

def __init__(self,name,owner,width,length,height):

self.name = name

self.owner = owner

self.width = width

self.length = length

self.height = height

def area(self):

return self.width * self.length

@property # 此装饰器就是负责把一个方法变成静态属性调用

def space(self):

return self.width * self.length * self.height

@classmethod # 供类使用的方法,虽然实例也可以调用

def colour(cls): # 此 cls 表示自动传递类名作为参数

print("房间的色彩是",cls.clr)

@staticmethod # 比喻为类的工具包. 只是名义上的归属类管理,不能使用类变量和实例变量

def round(a,b):

print("地板使用%s或%s"%(a,b))

## 静态属性既可以访问实例属性,又可以访问类的属性

## 类方法 不能访问到实例的属性

## 静态方法 不能访问类的属性,也不能访问实例的属性

# self跟实例绑定, cls跟类绑定, @staticmethod 跟谁都不绑定

r1 = Room('公寓','alex',9,9,2)

r2 = Room('house','jerry',12,13,5)

print(r1.area())

print(r2.area())

print("空间:",r1.space) # 调用方法不一样了,省掉括号

print("空间:",r2.space) # @property的好处是封装一个属性, 使用时完全感知不到背后的逻辑

Room.colour() # 跟实例没有关系,只是类调用自己的函数. 类级别的操作.

Room.round('木板','瓷砖')

r1.round("牛皮","水泥") # 类或实例都可以调用

## 学着学着感觉到累了, 就去B站找了下以前喜欢的视频:

## 砖家 "你不知道的西游记" https://www.bilibili.com/video/av3803706?from=search&seid=6691387782253130457

## 这个系列的解说真是精彩, 以前在UKu上看过, 强力推荐给刚入社会的年轻人们看看.

组合:

#!/usr/bin/env python

# coding:utf-8

# class Hand:

# pass

#

#

# class Foot:

# pass

#

# #

# class Trunk:

# pass

#

#

# class Head:

# pass

#

#

# class Person:

# def __init__(self, id_num, name):

# self.id_num = id_num

# self.name = name

# self.hand = Hand() # 使用小类的实例化

# self.foot = Foot()

# self.trunk = Trunk()

# self.head = Head()

#

#

# p1 = Person('111111', 'alex')

# print(p1.__dict__)

# ## 类的组合:组合指的是,在一个类中以另外一个类的对象作为数据属性,称为类的组合

# ## 参考: http://www.cnblogs.com/linhaifeng/articles/7340153.html

class School:

def __init__(self,name,addr):

self.name = name

self.addr = addr

class Course:

def __init__(self,name,price,period,school):

self.name = name

self.price = price

self.period = period

self.school = school

class Teacher:

def __init__(self,name,age,gender,):

self.name = name

self.age = age

self.gender = gender

s1 = School("Mooc",'北京')

s2 = School("Mooc",'上海')

s3 = School("Mooc",'线上')

msg = '''

1 xx学院 新校区

2 xx学院 老校区

3 xx学院 网络校区

'''

while True:

print(msg)

menu={

'':s1,

'':s2,

'':s3

}

choice = input("选择学校:")

school_obj = menu[choice]

n_name = input("课程名:")

n_price = input("课程价格:")

n_period = input("课程周期:")

new_course= Course(n_name,n_price,n_period,school_obj)

print("课程[%s]属于[%s]学校,费用[%s]" %(new_course.name,new_course.school.name,new_course.price))

虽然这些都是小练习,与实际生产还有很大差距,但是没有这些练习的熟练掌握,怎么能玩转实际生产呢?

继续!

抽象类与接口练习:

#!/usr/bin/env python

# coding:utf-8

import abc #利用abc模块实现抽象类(没错,就叫abc)

class All_file(metaclass=abc.ABCMeta): # 定义成基类

@abc.abstractmethod # 用装饰器的方式定义抽象方法,无需实现功能

def read(self):

pass # 基类方法不用实现 子类必须定义功能

@abc.abstractmethod

def write(self):

pass

## 接口继承:就是定义了一个父类,规定了所有的子类必须实现父类的方法,但是父类不实现。并不是为了节省代码

## 子类继承时必须实现具体地实现基类规定的方法,不实现就办法实例化

class Disk(All_file):

def read(self):

print("disk read")

def write(self):

print("disk write")

class Mem(All_file):

def read(self):

print("mem read")

def write(self):

print("mem write")

class cdrom(All_file):

def read(self):

print("cd read")

def write(self):

print("burn cd")

cd1 = cdrom() # 如果 cdrom没有去实现write方法,实例化时就会报错

'''

参考: http://www.cnblogs.com/linhaifeng/articles/7340153.html

抽象类与接口

抽象类的本质还是类,指的是一组类的相似性,包括数据属性(如all_type)和函数属性(如read、write),而接口只强调函数属性的相似性。

抽象类是一个介于类和接口直接的一个概念,同时具备类和接口的部分特性,可以用来实现归一化设计

'''

面向对象:静态属性,静态方法,组合,继承,衍生,继承之mro线性顺序列表,面向对象综合实例

1.静态属性(附有装饰器) class Room: def __init__(self,name,owner,width,length,height): self.name=name self.own ...

day25、 静态属性、类方法、静态方法、组合、继承、

一. 静态属性.类方法.静态方法 1.1静态属性 class Room: def __init__(self,name,owner,width,length): self.name=name self ...

Python面向对象05 /私有成员、类方法、静态方法、属性、isinstance/issubclass

Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/issubclass 目录 Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/is ...

python之静态属性、类方法、静态方法

静态属性.类方法.静态方法 1. 静态属性:在函数前加@property,将函数逻辑”封装“成数据属性,外部直接调用函数名,如同调用属性一样.这个函数是可以调用类和实例的属性的,    静态属性的作用 ...

typescript静态属性,静态方法,抽象类,多态

/* 1.vscode配置自动编译 1.第一步 tsc --inti 生成tsconfig.json 改 "outDir": "./js", 2.第二步 任务 ...

python_14 静态属性、类方法、静态方法;组合;继承

静态属性 在类中函数前加@property,在实例调用函数时无需加(),将函数属性封装,调用时看起来与数据属性类似 将函数封装成数据属性的形式,外部调用时看不到逻辑,静态属性可以访问实例属性也可以访问 ...

Python——面向对象,类属性,静态方法,类方法

一.类属性 """类属性(Class attribute) 定义:类对象所拥有的属性,被该类的所有实列对象所共有 类对象和实例对象皆可访问类属性 应用条件:记录的某项数据 ...

python面向对象(类的成员及类方法)

类的普通成员 字段 方法 属性 类的高级成员 静态字段 静态方法 属性方法   类方法 类成员修饰符 类的成员 类的成员可以分为三大类:字段.方法和属性 注:所有成员中,只有普通字段的内容保存对象中, ...

python面向对象-3类的静态方法和类方法

还是以上次的洗衣机例子: class Washer: company='ZBL' def __init__(self,water=10,scour=2): self._water=water #不想让 ...

随机推荐

Javascript 的执行环境(execution context)和作用域(scope)及垃圾回收

执行环境有全局执行环境和函数执行环境之分,每次进入一个新执行环境,都会创建一个搜索变量和函数的作用域链.函数的局部环境不仅有权访问函数作用于中的变量,而且可以访问其外部环境,直到全局环境.全局执行环境 ...

git命令详解(转)

Git使用 git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支 git branch -r 查看远程所有 ...

JavaScript 数组详解(转)

在程序语言中数组的重要性不言而喻,JavaScript中数组也是最常使用的对象之一,数组是值的有序集合,由于弱类型的原因,JavaScript中数组十分灵活.强大,不像是Java等强类型高级语言数组只 ...

ios跳转

目标应用程序:打开info.plist,添加一项URL types展开URL types,再展开Item1,将Item1下的URL identifier修改为URL Scheme展开URL Schem ...

Swift - 给图片添加文字水印(图片上写文字,并可设置位置和样式)

想要给图片添加文字水印或者注释,我们需要实现在UIImage上写字的功能. 1,效果图如下: (在图片左上角和右下角都添加了文字.) 2,为方便使用,我们通过扩展UIImage类来实现添加水印功能 ( ...

Ubuntu on win10

大家看到这个题目应该都知道这个东西吧,或许也都知道咋安装啥的,我只是想分享一下自己安装它的过程同时可以对那些有需要的人给予帮助!!! 1. 打开开发者模式(如下图) 像上面这样打开开发人员模式,过程会 ...

python基础下的mysql学习之操作命令(一)

E-R模型简介: 该模型应用于数据库设计中的概念结构设计阶段 E-entry,实体,是指设计的主体.对象等: R-relationship,关系,是指设计的主体之间的联系,关系也是一种数据: 一个实体 ...

全网最贴心webpack系列教程和配套代码

webpack-demos:全网最贴心 webpack 系列教程和配套代码 欢迎关注个人技术博客:godbmw.com.每周 1 篇原创技术分享!开源教程(webpack.设计模式).面试刷题(偏前端 ...

人类基因组三代组装: cano

git clone https://github.com/marbl/canu.git cd canu/src make -j 使用实例: canu ...

python 类静态属性_python面向对象之静态属性/静态方法/类方法/组合相关推荐

  1. python的实例属性和静态属性_Python面向对象之静态属性、类方法与静态方法分析...

    本文实例讲述了Python面向对象之静态属性.类方法与静态方法.分享给大家供大家参考,具体如下: 1. 静态属性:在函数前加@property,将函数逻辑"封装"成数据属性,外部直 ...

  2. python类详解_python面向对象编程:python类和实例讲解

    东尧爱分享 这是东尧每天一篇文章的第51天 东尧写文章的目标:分享东尧的经验和思考,帮你获取物质和精神两方面幸福. 1 什么是对象 在python里面,一切皆为对象.也就是说python里的所有数据都 ...

  3. python面向对象类属性_python面向对象之类属性和类方法案例分析

    本文实例讲述了python面向对象之类属性和类方法.分享给大家供大家参考,具体如下: 目标 类的结构 类属性和实例属性 类方法和静态方法 01. 类的结构 1.1 术语 -- 实例 使用面相对象开发, ...

  4. python面向对象编程中方法和属性_Python面向对象编程中关于类和方法的学习笔记...

    Python面向对象编程中关于类和方法的学习笔记 类与类方法是面向对象的编程语言中必不可少的特性,本文总结了Python面向对象编程中关于类和方法的学习笔记,需要的朋友可以参考下 类和实例 pytho ...

  5. python面向对象类的成员_Python面向对象中类的成员

    Python面向对象中类的成员总共有三种,分别是字段.方法和属性 Python Version: 3.5+ 字段 普通字段1 2 3 4 5 6 7 8class A: def __init__(se ...

  6. python的类和对象_Python面向对象之类和对象实例详解

    本文实例讲述了Python面向对象之类和对象.分享给大家供大家参考,具体如下: 类和对象(1) 对象是什么? 对象=属性(静态)+方法(动态): 属性一般是一个个变量:方法是一个个函数: #类的属性 ...

  7. python元类单例_python面向对象和元类的理解

    1 python类对象与实例对象 python中一切皆对象(广义上的对象),类也不例外,我们可以称类为类对象.python中内建函数type()可以返回对象的类型,例如type(int)会得到返回值, ...

  8. python中表示类的公有成员_Python面向对象 | 类的成员

    一. 细分类的组成成员 之前咱们讲过类大致分两块区域,静态字段部分和方法部分. 每个区域详细划分又可以分为: classA: company= '阿里巴巴' #静态变量(静态字段) __tel = ' ...

  9. python中如何创建类的对象_python面向对象中如何建立具体的对象?

    我们现在眼前所能看到的事物,都是具体的对象.很多小伙伴在面向对象中创建对象,其实都停留在对象名称的建立,计算机中并没有具体对象的描述属性.我们想要使用python中的类,建立的对象就需要是具体的.下面 ...

最新文章

  1. ×××的各种协议介绍
  2. 《网络操作系统》课后习题答案
  3. 利用脑机接口从鸟的脑电波中重现鸟唱歌声
  4. Cissp-【第1章 安全和风险管理】-2021-1-7(99页-162页)
  5. linux常用命令--diff
  6. mysql5.7和8.0的区别_解答阿迪达斯Adidas ultra boost4.0与正品区别!如何选择?
  7. Java 多线程 并发编程
  8. Tensorflow-gpu的方式
  9. 学习笔记TF065:TensorFlowOnSpark 1
  10. 【LeetCode】【数组】题号:*303,区域和检索
  11. HUT-XXXX The window of the dazzling 模拟
  12. ios13 自带字体列表
  13. Ubuntu 16.04 LTS 完善解决亮度调整
  14. 语音识别(20201030)——麦克风阵列(采集语音信号)
  15. java 取上界_Java中的上界通配符 - java
  16. ハーディー / 哈迪
  17. GBASE 8a MPP EXplain extended
  18. MySQL攻略(1)
  19. 打开 codeblocks 出现 ntvdm.exe 停止工作
  20. 计算机前进后退灰的无法按,《微机试题2012新题.xls》-支持高清全文免费浏览-max文档...

热门文章

  1. 访问ftp服务器文件夹权限设置,访问ftp服务器文件夹权限设置
  2. python中带有小数的字符串如何转化为数字_python中,如何将字符串转换为数字(将数字转换为整型),字符串的10转换为整型的10,10.5转换为10...
  3. 复杂系统学习(四):ODE模型II:流行病
  4. 【Linux】——进程创建fork()详解
  5. 【从零开始学习人工智能】 人工智能简介 - 04强化学习
  6. 巧夺天工的18条公路死亡之路藏匿荒野
  7. c语言中求余右值不能为小数,C语言知识点(2)
  8. Java学习笔记之键盘输入数组
  9. springboot 自定义过滤器
  10. 动态数码管verilog模块功能分析