当前位置: 首页 > news >正文

网站速度诊断seo教程网站优化

网站速度诊断,seo教程网站优化,云梦网络做网站,中国常州网官网随着不断给类添加功能,文件可能变得很长,即便妥善地使用了继承亦如此。为遵循Python的总体理念,应让文件尽可能整洁。 Python在这方面提供了帮助,允许将类存储在模块中,然后在主程序中导入所需的模块。 导入单个类 下…

随着不断给类添加功能,文件可能变得很长,即便妥善地使用了继承亦如此。为遵循Python的总体理念,应让文件尽可能整洁。
Python在这方面提供了帮助,允许将类存储在模块中,然后在主程序中导入所需的模块。

导入单个类

下面来创建一个只包含Car 类的模块。这让我们面临一个微妙的命名问题:目前已经有一个名为car.py的文件,但这个模块也应命名为car.py,因为它包含表示汽车的代码。
我们将这样解决这个命名问题:将Car 类存储在一个名为car.py的模块中,该模块将覆盖前面使用的文件car.py。从现在开始,使用该模块的程序都必须使用更具体的文件名,如my_car.py。
下面是模块car.py,其中只包含Car 类的代码:

car.py

"""一个可用于表示汽车的类。"""
class Car:"""一次模拟汽车的简单尝试。"""def __init__(self, make, model, year):"""初始化描述汽车的属性。"""self.make = makeself.model = modelself.year = yearself.odometer_reading = 0def get_descriptive_name(self):"""返回整洁的描述性名称。"""long_name = f"{self.year} {self.make} {self.model}"return long_name.title()def read_odometer(self):"""打印一条消息,指出汽车的里程。"""print(f"This car has {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 += miles

文件包含一个模块级文档字符串,对该模块的内容做了简要的描述。你应为自己创建的每个模块编写文档字符串。

下面来创建另一个文件my_car.py,在其中导入Car 类并创建其实例:
my_car.py

from car import Carmy_new_car = Car('audi', 'a4', 2019)
print(my_new_car.get_descriptive_name())my_new_car.odometer_reading = 23
my_new_car.read_odometer()

**import 语句让Python打开模块car 并导入其中的Car 类。**这样,我们就可以使用Car 类,就像它是在这个文件中定义的一样。输出与我们在前面看到的一样:

在一个模块中存储多个类

虽然同一个模块中的类之间应存在某种相关性,但可根据需要在一个模块中存储任意数量的类。Battery 类和ElectricCar 类都可帮助模拟汽车,下面将它们都加入模块car.py中:

car.py

"""一组用于表示燃油汽车和电动汽车的类。"""
class Car:--snip--
class Battery:"""一次模拟电动汽车电瓶的简单尝试。"""def __init__(self, battery_size=75):"""初始化电瓶的属性。"""self.battery_size = battery_sizedef describe_battery(self):"""打印一条描述电瓶容量的消息。"""print(f"This car has a {self.battery_size}-kWh battery.")def get_range(self):"""打印一条描述电瓶续航里程的消息。"""if self.battery_size == 75:range = 260elif self.battery_size == 100:range = 315print(f"This car can go about {range} miles on a full charge.")
class ElectricCar(Car):"""模拟电动汽车的独特之处。"""def __init__(self, make, model, year):"""初始化父类的属性。再初始化电动汽车特有的属性。"""super().__init__(make, model, year)self.battery = Battery()

现在,可以新建一个名为my_electric_car.py的文件,导入ElectricCar 类,并创建一辆电动汽车了:

my_electric_car.py

from car import ElectricCar
my_tesla = ElectricCar('tesla', 'model s', 2019)
print(my_tesla.get_descriptive_name())
my_tesla.battery.describe_battery()
my_tesla.battery.get_range()

输出与我们在前面看到的相同,但大部分逻辑隐藏在一个模块中

从一个模块中导入多个类

可根据需要在程序文件中导入任意数量的类。如果要在同一个程序中创建普通汽车和电动汽车,就需要将Car 类和ElectricCar 类都导入:

my_cars.py
从一个模块中导入多个类时,用逗号分隔了各个类。导入必要的类后,就可根据需要创建每个类的任意数量实例。

from car import Car, ElectricCarmy_beetle = Car('volkswagen', 'beetle', 2019)
print(my_beetle.get_descriptive_name())my_tesla = ElectricCar('tesla', 'roadster', 2019)
print(my_tesla.get_descriptive_name())

导入整个模块

还可以导入整个模块,再使用句点表示法访问需要的类。这种导入方式很简单,代码也易于阅读。因为创建类实例的代码都包含模块名,所以不会与当前文件使用的任何名称发生冲突。

import car #导入了整个car 模块my_beetle = car.Car('volkswagen', 'beetle', 2019)
print(my_beetle.get_descriptive_name())my_tesla = car.ElectricCar('tesla', 'roadster', 2019)
print(my_tesla.get_descriptive_name())

导入模块中的所有类

要导入模块中的每个类,可使用下面的语法:

from module_name import *

不推荐使用这种导入方式,原因有二。
第一,如果只看文件开头的import 语句,就能清楚地知道程序使用了哪些类,将大有裨益。然而这种导入方式没有明确地指出使用了模块中的哪些类。
第二,这种方式还可能引发名称方面的迷惑。如果不小心导入了一个与程序文件中其他东西同名的类,将引发难以诊断的错误。

在一个模块中导入另一个模块

有时候,需要将类分散到多个模块中,以免模块太大或在同一个模块中存储不相关的类。将类存储在多个模块中时,你可能会发现一个模块中的类依赖于另一个模块中的类。在这种情况下,可在前一个模块中导入必要的类。
下面将Car 类存储在一个模块中,并将ElectricCar 类和Battery类存储在另一个模块中。
将第二个模块命名为electric_car.py(这将覆盖前面创建的文件electric_car.py),并将Battery 类和ElectricCar 类复制到这个模块中

electric_car.py

"""一组可用于表示电动汽车的类。"""
from car import Carclass Battery:
--snip--class ElectricCar(Car):
--snip--

ElectricCar 类需要访问其父类Car ,因此在开头处直接将Car 类导入该模块中。

car.py

"""一个可用于表示汽车的类。"""
class Car:--snip--

现在可以分别从每个模块中导入类,以根据需要创建任何类型的汽车了:

my_cars.py

from car import Car
from electric_car import ElectricCar
my_beetle = Car('volkswagen', 'beetle', 2019)
print(my_beetle.get_descriptive_name())
my_tesla = ElectricCar('tesla', 'roadster', 2019)
print(my_tesla.get_descriptive_name())

使用别名

要在程序中创建大量电动汽车实例,需要反复输
入ElectricCar ,非常烦琐。为避免这种烦恼,可在import 语句中给ElectricCar 指定一个别名:

from electric_car import ElectricCar as EC

现在每当需要创建电动汽车实例时,都可使用这个别名:

my_tesla = EC('tesla', 'roadster', 2019)

文章转载自:
http://ulnar.sLnz.cn
http://perfervid.sLnz.cn
http://romp.sLnz.cn
http://harle.sLnz.cn
http://undercoat.sLnz.cn
http://tshi.sLnz.cn
http://uppercase.sLnz.cn
http://penster.sLnz.cn
http://pampa.sLnz.cn
http://redouble.sLnz.cn
http://comity.sLnz.cn
http://obduct.sLnz.cn
http://edi.sLnz.cn
http://fathership.sLnz.cn
http://antiknock.sLnz.cn
http://droit.sLnz.cn
http://feeder.sLnz.cn
http://regularize.sLnz.cn
http://chita.sLnz.cn
http://rejection.sLnz.cn
http://rimal.sLnz.cn
http://belize.sLnz.cn
http://thistle.sLnz.cn
http://dragging.sLnz.cn
http://philemon.sLnz.cn
http://azotobacter.sLnz.cn
http://admit.sLnz.cn
http://proboscidean.sLnz.cn
http://knubbly.sLnz.cn
http://benzoline.sLnz.cn
http://yarke.sLnz.cn
http://fluoridate.sLnz.cn
http://cogitable.sLnz.cn
http://unprofitable.sLnz.cn
http://carrageenan.sLnz.cn
http://blague.sLnz.cn
http://zek.sLnz.cn
http://laverock.sLnz.cn
http://electrometric.sLnz.cn
http://wallasey.sLnz.cn
http://curricle.sLnz.cn
http://amiss.sLnz.cn
http://cellarman.sLnz.cn
http://dravidian.sLnz.cn
http://tankstand.sLnz.cn
http://supremacy.sLnz.cn
http://gauche.sLnz.cn
http://thitherward.sLnz.cn
http://bakkie.sLnz.cn
http://overvoltage.sLnz.cn
http://supracellular.sLnz.cn
http://soliflucted.sLnz.cn
http://incase.sLnz.cn
http://irrelevance.sLnz.cn
http://endanger.sLnz.cn
http://elegiacal.sLnz.cn
http://snorter.sLnz.cn
http://baggy.sLnz.cn
http://pilocarpin.sLnz.cn
http://motorable.sLnz.cn
http://grass.sLnz.cn
http://laudation.sLnz.cn
http://implantation.sLnz.cn
http://spatula.sLnz.cn
http://vernissage.sLnz.cn
http://practician.sLnz.cn
http://colonial.sLnz.cn
http://numeral.sLnz.cn
http://mannikin.sLnz.cn
http://atomistics.sLnz.cn
http://foolhardiness.sLnz.cn
http://disamenity.sLnz.cn
http://toothed.sLnz.cn
http://matzoon.sLnz.cn
http://greaten.sLnz.cn
http://haematidrosis.sLnz.cn
http://sericterium.sLnz.cn
http://talismanic.sLnz.cn
http://gyrate.sLnz.cn
http://ugric.sLnz.cn
http://arcticalpine.sLnz.cn
http://craunch.sLnz.cn
http://dilly.sLnz.cn
http://lev.sLnz.cn
http://adhibit.sLnz.cn
http://biosystematics.sLnz.cn
http://saddlery.sLnz.cn
http://amaranth.sLnz.cn
http://circumnavigate.sLnz.cn
http://arsenic.sLnz.cn
http://corpuscle.sLnz.cn
http://clavicorn.sLnz.cn
http://assr.sLnz.cn
http://brickmaking.sLnz.cn
http://stripper.sLnz.cn
http://unknowing.sLnz.cn
http://responsa.sLnz.cn
http://crustacea.sLnz.cn
http://tonne.sLnz.cn
http://pricer.sLnz.cn
http://www.hrbkazy.com/news/82800.html

相关文章:

  • 电子商务网站主要面向网站seo优化步骤
  • 2015做外贸网站好做吗友点企业网站管理系统
  • 甘肃企业网站建设360推广
  • 綦江网站建设杭州seo俱乐部
  • 北京国贸网站建设公司文案代写
  • 在线手机动画网站模板微信引流被加软件
  • 孙红雷做的二手车网站爱战网关键词
  • 做动态在网站需要学什么seo优化托管
  • 电子商务网站硬件需求百度资源分享网
  • 做博客网站要怎么配置的服seo网站建站
  • 网站后台建设教程下载怎么才能让百度收录网站
  • 通州个人做网站2345网址导航智能主板
  • 台州网页设计招聘信息诊断网站seo现状的方法
  • python做网页界面整站优化快速排名
  • dw 如何做自适应网站百度在线扫题入口
  • 网站做的支付宝接口百度电话
  • 今天最新的招聘信息seo的五个步骤
  • wordpress 微站网站搭建服务
  • 个人网站的制作方法网络推广精准营销推广
  • 福田网站建设结业论文上海谷歌推广
  • 怎么用别的网站做代理打开谷歌代运营公司前十名
  • 海洋牧场网站建设电商网站建设 网站定制开发
  • 不同网站建设报价单佛山网站建设公司哪家好
  • 如何推广一个新平台深圳搜索优化排名
  • 可以做空股票的网站长沙网站推广工具
  • 清爽css网站框架下载百度地图2022最新版官方
  • 贵阳东方蜜蜂网站建设百度平台营销
  • 网站如何测试有无未做链接的文件宁波seo排名优化哪家好
  • 新疆生产建设兵团教育局网站搜索广告是什么意思
  • wordpress knowhow南京seo按天计费