导入单个类

随着不断添加类,可能会使文件变得很长,那么此时,需要将类存储在模块中,然后在主程序导入类即可

book.py

class Book():
    '''模拟一本书'''
    def __init__(self,name,page,year):
        self.name = name
        self.page = page
        self.year = year
    def get_describe_book(self):
        '''返回书读的描述信息'''
        long_name = str(self.year)+' page '+str(self.page)+' '+self.name
        return long_name

my_book.py

from book import Book
my_book = Book('Pride and Prejudice',352,1796)
print(my_book.get_describe_book())

上面的代码中,from book import Book即为从book模块导入类Book

在一个模块中存储多个类

虽然同一个模块中的类之间应存在某种相关性,但是可以根据需要在一个模块中存储任意数量的类

class Woman():
    '''描述一个女人'''
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def describe(self):
        return ("My name is " + self.name + " and I'm "+str(self.age)+"years old" )
class Man():
    '''描述一个男人'''
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def describe(self):
        return ("My name is " + self.name + " and I'm "+str(self.age)+"years old" )

从一个模块中导入多个类

导入上述文件中Woman与Man类

from people import Man,Woman
Alice = Woman('Alice',32)
print(Alice.describe())
Alice = Man('zhangsan',23)
print(Alice.describe())

导入整个模块

上面导入类非常的麻烦,你得知道这个模块中类的名字才可以导入,为了便捷,我们可以直接导入整个类

import people
Alice = people.Woman('Alice',32)
print(Alice.describe())
Alice = people.Man('zhangsan',23)
print(Alice.describe())

同时也可以使用:from people import *(不推荐使用)

如果A模块依赖B模块,B模块依赖C模块,那么可以先将C导入到B模块,然后再导入到A模块