python导入类之学习笔记

导入类

#导入的类 
#car.py
# 代码所有:cxw
# 开发时间:2021/11/7 15:08
'''一个用于表示汽车的类'''
class Car():
    def __init__(self,make,model,year):
        self.making=make
        self.models=model
        self.years=year
        self.read_long=60
        '''描述汽车的种类,类型,生产日期'''
    def get_descriptive_name(self):
        print(self.years," ",self.making," ",self.models)
    '''打印汽车的里程'''
    def read_carlength(self):
        print("the car has",str(self.read_long))
        '''将里程设置程指定的值,拒绝里程表回拨'''
    def update_long(self,message):
        if message>=self.read_long:
            self.read_long=message
        else:
            print("you can not use it")
        '''将里程表读数添加指定的量'''
    def increment_odment(self,miles):
        self.read_long+=miles
class Battery():
    def __init__(self,battery_size=85):
        self.battery=battery_size
    def describe(self):
        print("this has ",self.battery," battery!")
    def battery_length(self):
        if self.battery==70:
            range=250
        elif self.battery==85:
            range=245
        mm="this car can go on "+str(range)
        mm+=" miles on a full charge."
        print(mm)
class Elec(Car):
    def __init__(self,make,model,year):
        super(Elec, self).__init__(make,model,year)
        self.battery=Battery()


导入单个类

定义:Python允许你将类存储在模块中,然后在主程序中导入所需的模块。
确定类像你希望的那样工作后,你就可以不管这些文件,而专注于主程序的高级逻辑了。

# 代码所有:cxw
# 开发时间:2021/11/7 15:19
#导入单个类
#导入文件名为car.py中包含的Car类
from car import Car
my_newcar=Car("audi","a4",2016)
my_newcar.get_descriptive_name()
my_newcar.read_carlength()
my_newcar.update_long(50)
my_newcar.read_carlength()
my_newcar.increment_odment(20)
my_newcar.read_carlength()

在一个模块中存储多个类

# 代码所有:cxw
# 开发时间:2021/11/7 15:43

'''在一个模块中存储多个类'''
from car import Elec  #在car.py文件中调用Elec的类,创建一个电动车
my_elec_car=Elec("tes","models",2016)
my_elec_car.get_descriptive_name()
my_elec_car.read_carlength()
my_elec_car.update_long(75)
my_elec_car.increment_odment(5)
my_elec_car.battery.describe()
my_elec_car.battery.battery_length()

导入整个模块

可以导入整个模块,再使用句点表示法访问需要的类。这种导入方法很简单,易于阅读
由于创建类实例的代码包含模块名,因此不会与当前文件使用的名称起冲突
import module
user_name.module_name.class_name

import car  #导入整个模块,用句点表示法
my_car=car.Car("audi","a4",2016)
my_car.get_descriptive_name()
my_car.read_carlength()
my_car.update_long(50)
my_car.read_carlength()
my_car.increment_odment(20)
my_car.read_carlength()

导入模块中的所有类(不推荐)

from car import *

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

'''
有时候,需要将类分散到多个模块中,以免模块太大,
或在同一个模块中存储不相关的类。
将类存储在多个模块中时,你可能会发现一个模块中的类依赖于另一个模块中的类。
在这种情况下,可在前一个模块中导入必要的类。
'''
#car.py
class Car():
    def __init__(self,make,model,year):
        self.making=make
        self.models=model
        self.years=year
        self.read_long=60
        '''描述汽车的种类,类型,生产日期'''
    def get_descriptive_name(self):
        print(self.years," ",self.making," ",self.models)
    '''打印汽车的里程'''
    def read_carlength(self):
        print("the car has",str(self.read_long))
        '''将里程设置程指定的值,拒绝里程表回拨'''
    def update_long(self,message):
        if message>=self.read_long:
            self.read_long=message
        else:
            print("you can not use it")
        '''将里程表读数添加指定的量'''
    def increment_odment(self,miles):
        self.read_long+=miles

#my_electric.py  导入car.py的类
from car import Car  #从car.py中导入了Car()类,
class Battery():
    def __init__(self,battery_size=85):
        self.battery=battery_size
    def describe(self):
        print("this has ",self.battery," battery!")
    def battery_length(self):
        if self.battery==70:
            range=250
        elif self.battery==85:
            range=245
        mm="this car can go on "+str(range)
        mm+=" miles on a full charge."
        print(mm)
class Elec(Car):
    def __init__(self,make,model,year):
        super(Elec, self).__init__(make,model,year)
        self.battery=Battery()

#my_car.py 调用类
from car import Car  #从car.py中导入了Car类,并从my_electric.py中导入了Elec类
from my_electric_car import Elec
my_beetee=Car("volock","bettee",2016)
my_beetee.get_descriptive_name()
mytes=Elec("tes","roader",2017)
mytes.get_descriptive_name()

实例1

从模块中定义类,导入类,使用类


#restaurant.py
# 代码所有:cxw
# 开发时间:2021/11/7 20:41
#一个用于表示餐厅的类
class Restaurant():
    def __init__(self,res_name,res_type):
        self.name=res_name
        self.type=res_type
    def describe_res(self):
        print("the ",self.name," is",self.type)
        
#导入类
# 代码所有:cxw
# 开发时间:2021/11/7 20:44

#导入restaurant中的Restaurant类
from restaurant import Restaurant
my_res=Restaurant("dongbei","delicious")
my_res.describe_res()


python 的标准库

python的标准库是一组模块,安装的python都包含它

# 代码所有:cxw
# 开发时间:2021/11/7 22:36


from collections import OrderedDict  
#python的标准库,模块collections中的一个类,OrderedDict,字典类,键值对,key-value
favorite_languages=OrderedDict()
favorite_languages["jen"]="python"
favorite_languages["sara"]="c"
favorite_languages["edward"]="ruby"
favorite_languages["pjill"]="python"
for name,language in favorite_languages.items():
    print(name.title()+" 's favorite languages is "+language.title())

实例2

# 代码所有:cxw
# 开发时间:2021/11/7 22:36


from collections import OrderedDict  
#python的标准库,模块collections中的一个类,OrderedDict,字典类,键值对,key-value
favorite_languages=OrderedDict()
favorite_languages["jen"]="python"
favorite_languages["sara"]="c"
favorite_languages["edward"]="ruby"
favorite_languages["pjill"]="python"
for name,language in favorite_languages.items():
    print(name.title()+" 's favorite languages is "+language.title())

'''---------------------------------'''
from collections import OrderedDict
favorite_languages=OrderedDict()
favorite_languages["jen"]="python"
favorite_languages["sara"]="c"
favorite_languages["jack"]="java"
for name,language in favorite_languages.items():  #python 字典(Dictionary) items() 函数以列表返回可遍历的(键, 值) 元组数组。
    print(name.title()+" "+language.title())

##实例

#使用OrderdDict()类表示词汇表
from collections import OrderedDict
word_name=OrderedDict()
word_name["1."]="challeage"
word_name["2."]="abundant"  #大量的
word_name["3."]="abandon"   #放弃
for num,word in word_name.items():
    print(num.title()+" "+word.title())

实例3

#骰子
#生成随机数
# import random
# s=random.randint(1,6)   #导入random类使用randint()方法,生成一个指定范围的整数
# print(s)

class Die():
    def __init__(self,sides=6):
        self.side=sides
    def roll_die(self):
        from random import randint
        x=randint(1,6) #打印1和骰子之间的随机数
        print(x)
    def touzi(self,sd,n):
        self.m=sd
        self.num=n
        for sd in range(n):
            print(sd,end=" ")
tz=Die()
tz.roll_die()
tz.touzi(6,10)
tz.touzi(20,10)

注解


#python标准库
'''
Python Module of the Week:
要了解Python标准库,
一个很不错的资源是网站Python Module of the Week。
请访问http://pymotw.com/并查看其中的目录,
在其中找一个你感兴趣的模块进行探索,
或阅读模块collections和random的文档。
'''

#类编码风格
'''
类名应采用驼峰命名法,
即将类名中的每个单词的首字母都大写,而不使用下划线
。实例名和模块名都采用小写格式,并在单词之间加上下划线。
'''
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值