一、 模块(module)

  模块中包含一些函数和变量,在其他程序中使用该模块的内容时,需要先将模块import进去,再使用.操作符获取函数或变量,如

 # This goes in mystuff.py
def apple():
print("This is an apple.") pear = "This is a pear."
 import mystuff as ms
ms.apple() print(ms.pear)

  输出为

This is an apple.
This is a pear.

  二、 类(class)

  类与模块的比较:使用类可以重复创建很多东西出来(后面会称之为实例化),且这些创建出来的东西之间互不干涉。而对于模块来说,一次导入之后,整个程序就只有这么一份内容,更改会比较麻烦。

  一个典型的类的例子:

 class Mystuff(object):

     def __init__(self):
self.tangerine = "And now a thousand years between" def apple(self):
print("I AM CLASSY APPLES!")

  注意体会其中的object、__init__和self。

  三、 对象(object)

  对象是类的实例化,类的实例化方法就是像函数一样调用一个类。

 thing = Mystuff()    # 类的实例化
thing.apple()
print(thing.tangerine)

  详解类的实例化过程:

  1. python查找Mystuff()并知道了它是你定义过的一个类。
  2. python创建一个新的空对象,里面包含了你在该类中用def指定的所有函数。
  3. 检查用户是否在类中创建了__init__函数,如果有,则调用这个函数,从而对新创建的空对象实现初始化。
  4. 在Mystuff的__init__函数中,有一个叫self的函数,这就是python为你创建的空对象,你可以对它进行类似模块、字典等的操作,为它设置一些变量。
  5. 此处将self.tangerine设置成了一段歌词,这样就初始化了该对象。
  6. 最后python将这个新建的对象赋给一个叫thing的变量,以供后面的使用。

  四、获取某样东西里包含的东西

  字典、模块和类的使用方法对比:

 # dict style
mystuff['apple'] # module style
# import mystuff
mystuff.apple() # class style
thing = mystuff()
thing.apple()

  五、第一个类的例子

 class Song(object):

     def __init__(self,lyrics):
self.lyrics = lyrics def sing_me_a_song(self):
for line in self.lyrics:
print(line) happy_bday = Song(["Happy birthday to ~ you ~",
"Happy birthday to ~ you ~",
"Happy birthday to ~ you ~~",
"Happy birthday to you ~~~"]) bulls_on_parade = Song(["They rally around the family",
"With pockets full of shells"]) happy_bday.sing_me_a_song() bulls_on_parade.sing_me_a_song()

  输出

Happy birthday to ~ you ~
Happy birthday to ~ you ~
Happy birthday to ~ you ~~
Happy birthday to you ~~~
They rally around the family
With pockets full of shells
  •   为什么创建__init__等函数时要多加一个self变量?

  因为如果不添加self,lyrics = “blahblahblah”这样的代码就会有歧义,它指的既可能是实例的lyrics属性,也可能是一个叫lyrics的局部变量。有了self.lyrics = "blahblahblah",就清楚的知道这指的是实例的属性lyrics。

【Python基础】lpthw - Exercise 40 模块、类和对象的更多相关文章

  1. 笨办法40模块, 类和对象class

    class a: def change(self, sign, call): self.first = sign self.second = call first = 'first' second = ...

  2. Python 基础教程之包和类的用法

    Python 基础教程之包和类的用法 建立一个文件夹filePackage 在filePackage 文件夹内创建 __init__.py 有了 __init__.py ,filePackage才算是 ...

  3. 孤荷凌寒自学python第三十四天python的文件操作对file类的对象学习

     孤荷凌寒自学python第三十四天python的文件操作对file类的对象学习 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.close() 当一个file对象执行此方法时,将关闭当前 ...

  4. 077 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 02 类和对象

    077 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 02 类和对象 本文知识点:类和对象 说明:因为时间紧张,本人写博客过程中只是对知识点 ...

  5. python基础(10)--模块

    模块(module) 模块,用一坨代码实现了某个功能的代码集合 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来 ...

  6. Python基础(十)-模块

    模块初识 一般把不同功能代码放到不同py文件,一个py文件就是一个模块 三种模块库: 1.Python标准库 2.第三方库 3.自定义库 导入模块:import 库名 (Python解释器只认识执行文 ...

  7. python基础学习十 logging模块详细使用【转载】

    很多程序都有记录日志的需求,并且日志中包含的信息既有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,主要用于输出 ...

  8. Python基础(12)--模块

    本文地址:http://www.cnblogs.com/archimedes/p/python-modules.html,转载请注明源地址. 模块简介 如果你退出 Python 解释器重新进入,以前创 ...

  9. 第六章:Python基础の反射与常用模块解密

    本课主题 反射 Mapping 介绍和操作实战 模块介绍和操作实战 random 模块 time 和 datetime 模块 logging 模块 sys 模块 os 模块 hashlib 模块 re ...

随机推荐

  1. Git可视化教程——Git Gui的使用

    参考链接:https://blog.csdn.net/qq_34842671/article/details/70916587

  2. python 列表 元组 字典 集合

    列表 lst = [i for i in range(10)] 切片 # 把下标小于2的显示出来 print(lst[:2]) # 把10个数有大到小输出 print(lst[::-1]) # 把下标 ...

  3. git知识总结-1.git基础之基本术语

    1.前言 git是一种分布式版本管理工具,本文主要是通过阅读博客中几篇讲述git的优秀文章,并对文章进行整理.提炼总结得出一份git的说明文档. 本文档介绍了git的基本原理及常用操作,目标是通过阅读 ...

  4. python3编程练习题

    记录一些基础编程练习题和一些遇见的坑 1)输出0到100的数字,如果数字是3的倍数输出Fizz,5的倍数输出Buzz.同时是3和5的倍数输出FizzBuzz,其他情况则打印原数字 for i in r ...

  5. gcc 8.2.1 / MCF thread 简介

    gcc 8.2.1 下载 地址 https://gcc-mcf.lhmouse.com/ MCF threadhttps://github.lhmouse.com/ MCF thread 简介MCF ...

  6. MySQL -- 关闭 binlog

    LNMP一键安装包安装的MySQL默认是开启了日志文件的,如果数据操作比较频繁就会产生大量的日志,在/usr/local/mysql /var/下面产生mysql-bin.0000* 类似的文件,而且 ...

  7. Python-Django-常用字段和参数

    -1 表模型如果不写主键,orm会自动创建一个主键 -2 常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名 ...

  8. C++11新特性(1)

    1.long long 类型 C++11新增了long long 和 unsigned long long 类型,为长整型和无符号长整型 long long 类型的数据占用8个字节(64位),取值范围 ...

  9. xmind-HTTP协议

  10. Linux awk学习

    零.awk标准语法 [root@wohaoshuai1 bbb]# echo "abcd" |awk 'BEGIN{print "wohaoshuai"} /a ...