python学习之引入模块

努力从来不晚,以前的荒废时光让人懊悔,但之后的不为所动才是失败的原因。

学习python有一周的时间了,断断续续的看了点语法,从今天开始记录python的学习,大部分的资料都来自《Python学习手册第四版》,有兴趣的可以去看原版书,谢谢。

python中的大部分功能都在模块中,类似java的导包和C++的include但又有不同,一个Python文件就是一个模块,不像java文件名必须和类名相似,Python模块中可以包括class和python普通语句,但如果想调用还是以class和函数为主。

1 Python模块引入的两种方式

(1)import

引入方式:import module1,module2 

调用方式:module1.func()

特点:调用时需要带着模块名,这种方式把整个模块导入

(2)from module1 import name1,name2,name3

引入module1模块中的name1,name2函数或者对象或者变量等(name1,name2,name3必须是module1含有的)

调用方式:name1 (),name2

特点:调用时可以直接使用函数或对象,这种方式不会把整个模块导入。

(3)from module1 import * 

调用方式:同2

特点:把整个模块的所有内容导入

例子:

ClassDemo.py

class MyClass:
     i = 12345
     def f(self):
         return 'hello world'

data = "hello World"

def getData():
   return "getdata"

class People:
    name = ''
    age = 0
    _weight = 0
    def __init__(self,n,a,w):
        self.name = n
        self.age = a
        self._weight = w

    def speak(self):
        print("name"+self.name)

def getTime():
   return "getTime()"

引入:

ClassOuterImport.py ,ClassOuterFrom.py和ClassDemo.py 同级目录

import ClassDemo

print(ClassDemo.getTime())
print(ClassDemo.data)
print(ClassDemo.MyClass())
print(ClassDemo.People("xiaoming",22,"good").name)
from ClassDemo import getTime,getData,data,MyClass,People

print(getTime())
print(data)
print(MyClass())
print(People("xiaoming",22,"good").name)

 

2 Python中不同包下的引用

Python中包的概念类似java中的包,简单说就是定义在不同目录下,这样既有利于组织文件结构,又能减少代码冲突。

Python利用Pycharm建立新的package时会自动在目录下建立__init__.py的文件,文件内容为null,__init__.py是python package的标识,如果是普通的目录则不会存在__init__.py文件。

 该文件的内容可以为空,也可以写代码但是建议不要写逻辑代码,如果内容为空没有__init__.py文件也是可以的,__init__.py一般的作用是,在导入一个包时,实际上是导入了它的__init__.py文件,可以在__init__.py文件中批量导入所需要的模块,而不再需要一个一个的导入。

Python模块在不同包中的引用

普通导入,不是批量导入

import 方式:

import  com.py.module1 

import 调用方式;

com.py.module1.fun1()

from方式:

from com.py.module1 import name1

from调用方式

name1

在pag包下建立

引用:

#import引用pag包下的DemoSub和使用方式
import pag.DemoSub

pag.DemoSub.output()
pag.DemoSub.gooood()

###########################################3

#from引用pag包下的DemoSub和使用方式
from pag.DemoSub import gooood,output

gooood()
output()

如果想要批量引入(__init__.py):

引用方式:

from pag import *

Demosub2.getDemoSub2()
DemoSub.gooood()

3 引用上级目录的模块

使用sys库添加路径

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值