python之导入类
作者:从未止步…
博客主页:从未止步的博客
专栏:和我一起学Python
语录:Every day is a second chance
行动是理想最高贵的表达 ,给大家介绍一款超牛的斩获大厂offer利器——牛客网
快来和我一起刷题吧!!!
导入类的目的:
为了使文件尽可能的简洁,因此将类存储在模块中,在主程序中导入所需模块。
导入 单个类:
方法:from 文件名 import 类(文件名为要导入的类所存在的文件名) 在包含主程序的文件中运用from语句导入我们想要调用的类
from text import Car
my_new_car=Car("tisila","ab",2019)#对导入的类直接进行实例传递
print(my_new_car.get_descriptive_name())
my_new_car.odometer_reading=23
my_new_car.read_odometer()
输出结果:
2019 Tisila Ab
this car has 23 miles on it
导入类是一种有效的编程方式,如果这个程序包含整个类,那就会显得特别的繁多,通过将这个类移到一个模块中,并导入该模块,依然可以实现所有的功能,但主程序文件变得非常简洁易读。
在一个模块中,存储多个类:
虽然同一个模块中的类具有相关性,但你可根据自己的需求在一个模块中存储多个类。
例如,现在的text文件中,我们存放了两个类:
但主函数中我们又不想调用两个类,依然可以通过from语句实现存有多个类的文件中,某一个类的调用。
例如,我们现在导入ElectricCar类:
from text import ELectricCar
my_new_car=ELectricCar("tisila","ab",2019)
print(my_new_car.get_descriptive_name())
my_new_car.odometer_reading=23
my_new_car.read_odometer()
输出结果:
__init__()方法被调用
2019 Tisila Ab
this car has 23 miles on it
从一个模块中导入多个类:
可根据自己的需求在程序文件中导入任意数量的类,方法:from 文件名 import 类1,类2,,,,
举例:
from text import ELectricCar,Car#导入ElectricCar类和Car类,不同类之间用逗号隔开
my_new_car=ELectricCar("tisila","ab",2019)
print(my_new_car.get_descriptive_name())
my_new_car.odometer_reading=23
my_new_car.read_odometer()
导入整个模块:
还可以导入整个模块,再使用句点表示法访问需要的类,这种导入方式很简单,代码也易于阅读,因为创建的实例的代码都包含模块名,所以不会与当前文件使用的任何名称发生冲突。
方法:import 文件名
举例:
import text#导入文件text里面的所有类
#调用ElectricCar类
my_new_car=text.ELectricCar("tisila","ab",2019)#注意调用方式是:文件名.类名
print(my_new_car.get_descriptive_name())
my_new_car.odometer_reading=23
my_new_car.read_odometer()
#调用People类
my_person=text.People("lisa",10000)
print(my_person.name)
print(my_person.money)
输出结果如下所示:
__init__()方法被调用
电瓶车的特点为:
None
this car has 23 miles on it
lisa
10000
该文件中包含的所有类都会被导入
导入模块中的所有类:
要导入模块中的每个类,可使用如下方法:
from module_name(模块名) import*
举例:
from text import*
my_new_car=ELectricCar("tisila","ab",2019)
print(my_new_car.get_descriptive_name())
my_new_car.odometer_reading=23
my_new_car.read_odometer()
my_person=People("lisa",10000)
print(my_person.name)
print(my_person.money)
输出结果如下所示:
__init__()方法被调用
电瓶车的特点为:
None
this car has 23 miles on it
lisa
10000
但我们并不推荐这种导入方式,有以下两个原因:
原因1:如果只看文件开头的Import语句,就能清楚地知道程序中使用了那些类,将可大大提高效率,然而这种导入方式没有明确的指出使用了模块中的那些类。
原因2:这种方式还有可能引发名称方面的迷惑,如果不小心导入了一个和程序文件中其他东西同名的类,将引发难以诊断的错误。
需要从一个模块中导入很多类时,最好导入整个模块,并使用module_name(模块名).Class_name(类名)语法来访问类,这样做,虽然文件开头没有列出用到的所有类,但你能清楚的知道在程序的那些地方使用了导入的模块,这样也避免了导入模块中,每个类可能引发的名称冲突。
在一个模块中导入另一个模块:
有时候需要将类分散到多个模块,以免模块太大或者在同一个模块中存储不相关的类,将类存储在多个模块中时,你可能会发现一个模块中的类依赖于另一个模块中的类,在这种情况下,可在前一个模块中导入必要的类。
举例:
#分别从每个模块导入类
#ELectricCar作为Car的子类,在存储ELectricCar的模块中需要将父类导入
from electriccars import ELectricCar,Battery#ELectricCar,Battery存储在一个模块中
from text import Car
my_new_cars=Car("tisila","ab",2019)
print(my_new_cars.get_descriptive_name())
my_electricCars=ELectricCar("小新","abc",2020)
my_electricCars.get_descriptive_name("小新")
my_electricCars=Battery()
my_electricCars.electric_battery()
汽车的特点为:
2019 Tisila Ab
__init__()方法被调用
小新是电瓶车
电池的容量为75
使用别名:
导入类时,也可指定别名。
例如,要在程序中创建大量的电动车实例,需要反复输入ElectricCars,非常麻烦,为避免这种烦恼,可在import语句中给ElectricCars指定一个别名:
from 模块名 import 类名 as 别名
举例:
from electriccars import ELectricCar as EC
my_electricCars=EC("小新","abc",2020)#在此后的调用中,直接使用别名
my_electricCars.get_descriptive_name("小新")
__init__()方法被调用
小新是电瓶车
自定义工作流程:
一开始应让代码结构尽可能简单,先尽可能在一个文件中完成所有的工作,确定一切都能正确运行后,再将类转移到单独的模块中,如果你喜欢和文件的交互方式,可在项目开始时就尝试将类存储在模块中,先找出让你能够编写出可行代码的方式,在尝试改进代码。
python标准库:
python标准库是一组模块,我们安装的python都包含它,也就是说我们可以使用其他程序员编写好的模块了,可以使用标准库中的任何函数和类,只需在程序开头包含一条简单的import语句即可。
举例:
#randint函数将两个整数作为参数
#并随机返回一个位于这两个整数之间(包含这两个整数)的整数
from random import randint#random随机模块
print(randint(1,9))
7
在random模块中,另一个有用的函数是choice(),它将一个列表或者元组作为参数,并随机返回其中的一个元素。
举例:
from random import choice
players=["charles",'martina',"florence",'eli']
first_up=choice(players)
print(first_up)
florence
创建与安全相关的应用程序时,请不要使用模块random,但该模块可以很好地用于创建众多有趣的项目。
类编码风格:
类名应使用驼峰命名法,即将类名中的每个单词地首字母都要大写,而不使用下划线,实例名和模块名都使用小写格式,并在单词之间加上下划线。
对于每个类,都应紧跟在类定义后面包含一个文档字符串,这种文档字符串简要的描述类地功能,并遵循编写函数地文档字符串时采用的格式约定,每个模块也都应该包含一个文档字符串,对其中的类可用于进行什么描述。
可使用空格来组织代码,但不要滥用。在类中,可使用一个空行来分隔方法,而在模块中,可使用两个空行来分隔类。
需要同时导入标准库中的模块和自己编写的模块,先编写导入标准库模块中的import语句,在添加一个空行,然后编写导入自己编的模块的import语句,在包含多条import语句的程序中,这种做法更容易明白程序使用的各个模块来自何处
python之导入类相关推荐
- python 动态导入类_从动态导入模块中类的字符串名动态实例化?
tl:博士 使用importlib.import_module导入根模块,并使用getattr函数按名称加载类:# Standard import import importlib # Load &q ...
- python如何导入类里_Python导入模块中的所有类(98)
要导入模块中的每个类,可使用下面的语法: from mod import * 不推荐使用这种导入方式,其原因有二.首先,如果只要看一下文件开头的import语句,就能清楚地知道程序使用了哪些类,将大有 ...
- python导入类有红线_解决Python中导入自己写的类,被划红线,但不影响执行的问题...
1. 错误描述 之前在学习Python的过程中,导入自己写的包文件时,与之相关的方法等都会被划红线,但并不影响代码执行,如图: 看着红线确实有点强迫症,并且在这个过程当时,当使用该文件里的方法时不会自 ...
- 【Python学习】导入类
# _*_ coding:utf-8 _*_ """ name:zhangxingzai date:2022/11/20 form:<Python编程从入门到实践& ...
- python如何定义类_Python 面向对象
Python 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触过 ...
- Python中的类、模块和包究竟是什么?
Python培训教程:Python中的类.模块和包究竟是什么?在Python和其他编程语言中,都有类似或相同的概念,如对象.类.模块.包,名称都是一样的,只不过会有细微的一些区别,正是因为有这些存在, ...
- Python模块与类
2019独角兽企业重金招聘Python工程师标准>>> 类 类的定义,继承 类中的属性,类属性和实例属性的区别及访问方式 变量名以"_"或"__&quo ...
- Python知识点7——类
定义一个类 Python中,定义类的方式是:class classname(): class cat():def __init__(self, name, age):#Python中的构造函数,初始化 ...
- python怎么导入包-Python模块导入与包构建最佳实践
[TOC] 最开始写程序的时候,都是一个文件里输入几行源码(python 的一个 web 框架bottle就特别强调自己是单文件框架).随着程程式变大变复杂,一个文件很难承载如此多的功能,因此将代码拆 ...
最新文章
- mysql 主主+ Keepalived 高可用
- java jdk目录_Java开发工具包JDK安装和目录介绍
- C语言学习之编程输入x,输出对应的y.
- java 常见bug_java常见bug
- 数据库MySQL/mariadb知识点——日志记录(2)二进制日志
- (转)SpringMVC学习(十一)——SpringMVC实现Resultful服务
- 【黑马程序员】————预处理指令2-文件编译
- HDU 5769 Substring(后缀数组)
- C#编译器对泛型方法调用作类型推断的奇怪问题
- csv逗号分隔符转换_文件系统(02):基于SpringBoot管理Xml和CSV
- zabbix开启网页报警声音方法:网页也可以有报警声音(46)
- 麦克斯韦方程组(彩图完美解释版)
- QT入门学习(一):什么是QT
- 设置/etc/fstab实现自动挂载
- ssm学生请假系统java学生请假系统源码
- 计算机作业我家乡的变化英语作文,我的变化英语作文3篇
- 我经历过的失败产品和项目(二):一款无疾而终的棋牌类游戏
- 消防应急疏散指示系统在学校项目上的应用
- 威纶通触摸屏232脚位_威纶通触摸屏使用手册
- 上位机和Arduino的通信的解决方案