Python教程8

Python教程8

  1.多态

# -*-coding:utf-8-*-
"""
1.封装:根据职责将属性和方法封装到一个抽象的类中
2.继承:实现代码重用,相同的代码不需要重复编写
3.多态:不同的子类对象调用相同的父类方法,产生不同的执行结果
(多态可以增加代码的灵活度,以继承和重写父类方法为前提,是调用方法的技巧
不影响到类的内部设计)

"""

class Dog(object):
    def __init__(self, name):
        self.name = name

    def game(self):
        print("%s 蹦蹦跳跳的玩耍" % self.name)

class XiaoTianDog(Dog):
    def game(self):
        print("%s 飞到天上去玩耍" % self.name)

class Person(object):
    def __init__(self, name):
        self.name = name

    def game_with_dog(self, dog):
        print("%s 和%s 一起玩耍----" % (self.name, dog.name))
        dog.game()

# 创建狗对象
# waicai =Dog("旺财")
waicai = XiaoTianDog("旺财1")
# 创建人对象
xm = Person("小明")
# 调用和人玩的方法
xm.game_with_dog(waicai)

"""
术语:
创建出来的对象叫做类的实列
创建对象的动作叫实例化
对象的属性叫做实例属性
对象的调用方法叫做实例方法
两个说明:
1.每个对象都有自己独立的内存空间,保存各种不同的属性
2.每个对象的方法,在内存中只有一份,
在调用方法时,需要把对象的引用传递到方法的内部
"""

# 类对象
"""
类时一个特殊的对象,程序运行时,类同样会加载到内存。类对象在内存中只有一份,
使用一个类可以创建很多个对象实例,类对象还可以拥有自己的属性和方法。
类属性就是给类对象中定义的属性,通常用来记录这个类的相关特征,类属性不会用于记录剧吐的对象特征
"""

# 实例,定义一个工具类,每件工具都有自己的name,需求,指定使用这个类,创建多少个工具对象
class Tool(object):
    # 使用赋值语句定义类的属性
    count = 0

    def __init__(self, name):
        self.name = name
        Tool.count += 1  # 每次调用初始化方法都加1

tool1 = Tool("斧头")
print(Tool.count)
tool2 = Tool("榔头")
tool3 = Tool("扳手")
print(Tool.count)
print("----属性获取机制----")
print(Tool.count)  # 推荐
print("工具对象的总数: %d" % tool1.count)  # (不推荐)
print("工具对象的总数: %d" % tool3.count)  # (不推荐)
#  注意下三行
tool3.count = 99  # 在对象中找不到count属性,则会自动添加一个。和类属性不一样
print("工具对象的总数: %d" % tool3.count)
print("=====> %d" % Tool.count)

"""
类方法:
类方法需要修饰器@classmethod来标识
类方法的第一个参数是cls
"""

class Tool1(object):
    count1 = 10

    @classmethod  # 创建类方法,方法上方使用@classmethod
    def show_tool_count(cls):
        print("工具对象的数量%d" % cls.count1)

    def __init__(self, name):
        self.name1 = name
        Tool1.count1 += 1

toola = Tool1("斧头")
toola = Tool1("斧头1")
Tool1.show_tool_count()  # 调用类方法

"""
静态方法:
在开发时,如果需要在类中封装一个方法:
1.不需要访问实列属性或者调用实例方法
2.不需要访问类的属性或者调用类的方法
可以把方法封装成一个静态的方法

"""

class Dog1(object):
    @staticmethod  # 定义静态方法,在方法上使用@staticmethod
    def run():  # 注意静态方法没有参数
        print("小狗要跑跑....")

# dog1 = Dog1() #调用静态方法可以不创建对象
Dog1.run()

原文地址:https://www.cnblogs.com/jun1/p/9941690.html

时间: 2024-10-11 13:46:47

Python教程8的相关文章

简明 Python 教程:总结

 简明 Python 教程 说明:本文只是对<简明Python教程>的一个总结.请搜索该书查看真正的教程. 第3章 最初的步骤 1. Python是大小写敏感的. 2. 在#符号右面的内容都是注释 3. Python至少应当有第一行那样的特殊形式的注释.它被称作组织行——源文件的头两个字符是#!,后面跟着一个程序.这行告诉你的Linux/Unix系统当你执行你的程序的时候,它应该运行哪个解释器. #!/usr/bin/python 4. Linux/Unix用户适用:chmod命令用来改变文件

简明Python教程笔记(二)----用户交互raw_input()

raw_input() python内建函数 将所有输入看做字符串,返回字符串类型 input()对待纯数字输入时具有自己的特性,它返回所输入的数字的类型( int, float ) input() 本质上还是使用 raw_input() 来实现的,只是调用完 raw_input() 之后再调用 eval() 函数 例子: #!/usr/bin/env pythonthis_year = 2014name = raw_input('please input your name:')age1 =

简明Python教程笔记(一)

#!/usr/bin/env python#Filename : helloworld.py#The use of 'and"  print 'hello,world!'print "hello,world!" #The use of '''and"""print '''This is a multi-line string. This is the first line.This is the second line."What's

Python教程:操作数据库,MySql的安装详解

各位志同道合的同仁请点击上方关注 本教程是基于Python语言的深入学习.本次主要介绍MySql数据库软件的安装.不限制语言语法,对MySql数据库安装有疑惑的各位同仁都可以查看一下. 如想查看学习Python相关文章,请移步:Python开发实战系列教程-链接汇总,持续更新. 数据库的应用在软件开发领域是重重之重.大量数据和配置被保存在数据库中以被使用.如果想开发一套软件系统与数据库是分不开的.发展到现在,各类数据库应需求而生:关系型与非关系型.单机与分布式.文件型内存型等等. 对于关系型数据

Python 教程

The Python Tutorial Python 教程 Python是一种很容易学习并且功能强大的编程语言.它有着高效的数据结构并且以面向对象的编程方式而拥有简单且高效的特性.Python优雅的语法,动态的类型和她自然的解释,使她成为一种理想的脚本语言和一种在大多平台里许多领域上的快速开发语言.Python解释器和广泛的标准库在Python的网站上https://www.python.org/是面向所有主要的平台免费开源并且自由使用的.在同一个网址上还包含了很多免费的第三方模块,程序,工具和

【转帖】简明 Python 教程

简明 Python 教程   下一页 简明 Python 教程 Swaroop, C. H. 著 沈洁元  译 版本:1.20 A Byte of Python Copyright © 2003-2005 Swaroop C H 简明 Python 教程 <简明 Python 教程>为 "A Byte of Python" 的唯一指定简体中文译本,版权 © 2005 沈洁元 本书依照 创作公用约定(署名-非派生作品-非商业用途) 发布. 概要 无论您刚接触电脑还是一个有经验

简明 Python 教程中的第一个备份脚本

第一次学习python写的脚本 原为简明 Python 教程中的第一个脚本 原脚本如下 #!/usr/bin/python # Filename: backup_ver1.py import os import time # 1. The files and directories to be backed up are specified in a list. source = ['/home/swaroop/byte', '/home/swaroop/bin'] # If you are u

[简明python教程]学习笔记之编写简单备份脚本

[[email protected] 0503]# cat backup_ver3.py #!/usr/bin/python #filename:backup_ver3.py import os import time #source source=['/root/a.sh','/root/b.sh','/root/c.sh'] #source='/root/c.sh' #backup dir target_dir='/tmp/' today=target_dir+time.strftime('

python教程,python入门教程

给大家整理的这套python学习路线图,按照此教程一步步的学习来,肯定会对python有更深刻的认识.或许可以喜欢上python这个易学,精简,开源的语言.此套教程,不但有视频教程,还有源码分享,让大家能真正打开python的大门,进入这个领域.现在互联网巨头,都已经转投到人工智能领域,而人工智能最好的编程语言就是python,未来前景显而易见.黑马程序员是国内最早开设人工智能的机构. 一.首先先推荐一个教程 8天深入理解python教程:http://pan.baidu.com/s/1kVNm

廖雪峰老师Python教程读后笔记

廖老师网站:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 花几天时间看了廖老师的python教程,现在总结一下. (本人用python工作了一年半,有一定python基础,看过<python核心编程>与部分<python源码剖析>,只把自己觉得有用的记一下) 高级特性 切片,对list和tuple而言 生成器yield,协程用到,用于异步 迭代器Iterable(