# _*_ coding:utf-8 _*_
"""
name:zhangxingzai
date:2022/11/20
form:《Python编程从入门到实践》
"""
9.4.1 从模块中导入类
随着你不断地给类添加功能,文件可能变得很长,即便你妥善地使用了继承亦如此。为遵循
Python 的总体理念,应让文件尽可能整洁。为在这方面提供帮助, Python 允许你将类存储在模块
中,然后在主程序中导入所需的模块。
下面来创建一个包含Car、 Battery 和 ElectricCar类的模块
# 一个可用于表示汽车的类
class Car:"""一个模拟汽车的实例"""def __init__(self, make, model, year):"""初始化描述汽车的属性"""self.make = makeself.model = modelself.year = yearself.odometer_reading = 0def get_descriptive_name(self):"""返回汽车的整体描述"""long_name = str(self.year) + ' ' + self.make + ' ' + self.modelreturn long_name.title()def read_odometer(self):"""打印一条消息,指出汽车的里程"""print("This car has " + str(self.odometer_reading) + " miles on it.")def update_odometer(self, mileage):"""将里程表读数设置为指定的值拒绝将里程表往回拨"""if mileage >= self.odometer_reading:self.odometer_reading = mileageelse:print("You can't roll back an odometer!")def increment_odometer(self, miles):"""将里程表读数增加指定的量"""self.odometer_reading += milesclass Battery:"""一次模拟电动汽车电瓶的简单尝试"""def __init__(self, battery_size=60):"""初始化电瓶的属性"""self.battery_size = battery_sizedef describe_battery(self):"""打印一条描述电瓶容量的消息"""print("This car has a " + str(self.battery_size) + "-kWh battery.")def get_range(self):"""打印一条描述电瓶续航里程的消息"""if self.battery_size == 70:range = 240elif self.battery_size == 85:range = 270message = "This car can go approximately " + str(range)message += " miles on a full charge."print(message)class ElectricCar(Car):"""模拟电动汽车的独特之处"""def __init__(self, make, model, year):"""初始化父类的属性,再初始化电动汽车特有的属性"""super().__init__(make, model, year)self.battery = Battery()
9.4.2 导入模块中的类
from car import Car, ElectricCar
my_tesla = ElectricCar('tesla', 'model s', 2016)
print(my_tesla.get_descriptive_name())my_new_car = Car('audi', 'a4', 2016)
print(my_new_car.get_descriptive_name())
9.4.3 导入整个模块
import carmy_beetle = car.Car('volkswagen', 'beetle', 2016)
print(my_beetle.get_descriptive_name())
my_tesla = car.ElectricCar('tesla', 'model s', 2016)
print(my_tesla.get_descriptive_name())
9.4.4 导入模块中的所有类
from module_name import *
不推荐使用这种导入方式
这种导入方式没有明确地指出你使用了模块中的哪些类。
还可能引发名称方面的困惑。如果你不小心导入了一个与程序文件中其
他模块同名的类,将引发难以诊断的错误。
需要从一个模块中导入很多类时,最好导入整个模块,并使用module_name.class_name语法来访问类。小结:
类的导入跟函数的导入使用方法一样,详细可以参考《函数_导入模块和编写指南》

【Python学习】导入类相关推荐

  1. python之导入类

    作者:从未止步- 博客主页:从未止步的博客 专栏:和我一起学Python 语录:Every day is a second chance 行动是理想最高贵的表达 ,给大家介绍一款超牛的斩获大厂offe ...

  2. Python 学习笔记 类的封装 类的继承 多态继承 类方法和静态方法 单例设计模式

    一.类的封装: 1.概念: 广义的封装:函数和类的定义本身,就是封装的体现 狭义的封装:一个类的某些属性,在使用的过程 中,不希望被外界直接访问,而是把这个属性给作为私有的[只有当前类持有],然后暴露 ...

  3. python 动态导入类_从动态导入模块中类的字符串名动态实例化?

    tl:博士 使用importlib.import_module导入根模块,并使用getattr函数按名称加载类:# Standard import import importlib # Load &q ...

  4. python如何导入类里_Python导入模块中的所有类(98)

    要导入模块中的每个类,可使用下面的语法: from mod import * 不推荐使用这种导入方式,其原因有二.首先,如果只要看一下文件开头的import语句,就能清楚地知道程序使用了哪些类,将大有 ...

  5. 廖雪峰Python学习笔记——类和实例

    Class MyList(list): __metaclass__ = ListMetaclass #它表示在创建MyList这个类时,必须通过 ListMetaclass这个元类的LIstMetac ...

  6. python学习笔记——类

    # coding='utf-8'class User():def __init__(self,name,sex):self.name = nameself.sex = sexprint '这里是构造函 ...

  7. Python学习笔记④——类、面向对象的三大特征 [封装+继承+多态]

    ✅ Blogger Learns Python is for learning the "Deep Learning". 文章目录 一.面向对象编程的简介 二.类与对象 -- 基础 ...

  8. Python学习(类的属性、继承、覆盖等详解)

    Tips:如果是从基础部分一路跟着过来的朋友,需要告诉你们的是我偷偷吧编程工具PyCharm装上了,今天算是进入面向对象编程环节.本人使用的编程工具是PyCharm,未安装的可以先去官网下载安装.下面 ...

  9. python设计一个长方形类_类设计模式python学习~元类

    废话就不多说了,开始... 元类是类的模版,在类的层次上标准类的行为. 面下用使元类现实单例设计模式(设计模式九 采取的是另一种方法): from warnings import * 每日一道理 坚持 ...

  10. Python学习:类与实例

    面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类 而实例是根据类创建出来的一个个具体的"对象",每个对象都拥有相同的 ...

最新文章

  1. 源码安装tensorflow
  2. 【算法】哈希表 ( 两数之和 )
  3. Python入门100题 | 第030题
  4. java8 java9 接口 interface
  5. 原理分析_生化分析仪原理结构及参数对比
  6. CSS属性之attr()
  7. Hive 导数据到本地(2种方式)
  8. SBT, activator, play之間的糾葛
  9. volatile关键字与synchronization关键字的区别?
  10. 括号匹配算法Java实现
  11. Windows Xp 优化文件 的一段BAT代码
  12. 使用微信小程序生成海报
  13. 同比和环比分别是什么,一分钟告诉你。
  14. 不同时区时间换算_世界时区划分时差在线查询计算_时间换算器
  15. exports is not defined
  16. 体力活动水平的计算机软件著作权查询,软件著作权被竞争对手抢先,著作权保护的客体对象是谁?...
  17. bzoj-1270 [BeijingWc2008]雷涛的小猫
  18. ios开发——实用技术篇Block/KVO/通知/代理
  19. 分页符怎么删除,word不要的页面删不掉
  20. 华为nova2连不上计算机,华为nova2正式发布,连个5G WIFI都不支持?

热门文章

  1. 理解同步和异步通信:以ROS的3中典型通信机制为例
  2. 交集♂差集♂并集♂和其他集合的内置方法
  3. JSP野生动物保护网
  4. 利用DICOM文件实现2D与3D体素坐标之间的转换
  5. 钢条切割问题(自顶向下)
  6. 哈工大2021春软件构造实验总结
  7. 惊!成年蚂蚁竟然返老还童!原因居然是。。。。
  8. 马云给正在奋斗的人的经典语句
  9. 逻辑运算符,if、swtch语句(java基础知识三)
  10. 点滴记录,与技术无关