python 中不同包 类 方法 之间的调用详解

目录结构如下:

在hello.py中导入ORM.py这个文件的时候,采用

import ORMPackage.ORM

或者

import ORM
u = User(id = 123, name='codiy', email='codiy_huang@163.com', password='123456')

两种方式均报错

错误提示:

name '***' is not defined

或者

No module named ORM

解决办法:

方法一 将包所在的目录添加到sys.path路径

import sys
import os
sys.path.append(os.getcwd() + '/ORMPackage')
from ORM import User
u = User(id = 123, name='codiy', email='codiy_huang@163.com', password='123456')

方法二 python版本≥3.5,可采用

from ORMPackage import ORM

或者

from ORMPackage.ORM import User

或者

from .ORM import User # 最近发现这种情况较多,直接 .*

补充知识:python导入两个包括同名函数的模块

当使用的函数中出现同名函数时,如果不注意的话,会造成程序的异常,这个时候要仔细的看程序的报错信息,会发现是函数的引用出现错误。如果不仔细的话会误以为是其他原因导致函数不能正常运行,会浪费很多时间。o(╥﹏╥)o

rectangle和 circular为两个不同的模块,它们都包含girth函数

如下运行函数时会有异常

from rectangle import *  #导入矩形模块

from circular import *   #导入圆形模块

girth(10)           #调用计算圆形周长的函数

girth(10,,20)      #调用计算矩形周长的函数

解决办法是:不使用from....import 导入,而是使用import导入

import rectangle as r

import circular as c

c.girth(10)           #调用计算圆形周长的函数

r.girth(10,,20)      #调用计算矩形周长的函数

也可以直接把函数起别名,这样在用函数的时候直接使用函数别名就行了

from... import ....as...

以上这篇python 中不同包 类 方法 之间的调用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Python实现调用另一个路径下py文件中的函数方法总结

    本文实例讲述了Python实现调用另一个路径下py文件中的函数方法.分享给大家供大家参考,具体如下: 针对这个问题,网上有很多的解决方式.其实最主要的原因是因为Python无法正确找到你其他文件夹下文件的路径.针对不同的环境和问题有不同的方法,大家可自行测试. 1. 方法一 首先,我先把解决我本人问题的方法记录如下.环境,Python为3.5,pycharm工作区间.主文件(main_preprocess.py)需要运用split_by_date.py中的函数,main_preprocess与s

  • Python 从一个文件中调用另一个文件的类方法

    如果是在同一个 module中(也就是同一个py文件里),直接用就可以 如果在不同的module里,例如 a.py里有 class A: b.py 里有 class B: 如果你要在class B里用class A 需要在 b.py的开头写上 from a import A 举个例子: 比如我在文件lingkingtables.py的文件中构造了三个类,在另一个文件中想要引用这三个类,那么用如下语句即可 from lingkingtables import Lnode from lingking

  • python 中不同包 类 方法 之间的调用详解

    目录结构如下: 在hello.py中导入ORM.py这个文件的时候,采用 import ORMPackage.ORM 或者 import ORM u = User(id = 123, name='codiy', email='codiy_huang@163.com', password='123456') 两种方式均报错 错误提示: name '***' is not defined 或者 No module named ORM 解决办法: 方法一 将包所在的目录添加到sys.path路径 im

  • python3中_from...import...与import ...之间的区别详解(包/模块)

    目录 前言 1.import ... 2.from ... import ... 3.引用也有区别 4.引用优化 总结 前言 [以下说明以tkinter模块为例进行说明] [下图为安装后在python解释器路径下lib(库)文件夹下的tkinter文件夹下的内容] 1.import ... [语法]import tkinter [说明] import引入的是包中根目录下__init__.py中的全部内容,包括其中的类.类内部的公有属性.类内部的公有方法.方法等内容.(该种方式导入包的本质就是执行

  • 对python中不同模块(函数、类、变量)的调用详解

    首先,先介绍两种引入模块的方法. 法一:将整个文件引入 import 文件名 文件名.函数名( ) / 文件名.类名 通过这个方法可以运行另外一个文件里的函数 法二:只引入某个文件中一个类/函数/变量 需要从某个文件中引入多个函数或变量时,用逗号隔开即可 from 文件名 import 函数名,类名,变量名 接下来,通过一个具体的例子说明引入 模块的具体方法: 假设新建一个python包test2,里边有一个名为run.py的python文件,run.py文件里有一个名为running()的函数

  • python中requests库session对象的妙用详解

    在进行接口测试的时候,我们会调用多个接口发出多个请求,在这些请求中有时候需要保持一些共用的数据,例如cookies信息. 妙用1 requests库的session对象能够帮我们跨请求保持某些参数,也会在同一个session实例发出的所有请求之间保持cookies. 举个栗子,跨请求保持cookies,在命令行上输入下面命令: # 创建一个session对象 s = requests.Session() # 用session对象发出get请求,设置cookies s.get('http://ht

  • 对Python中class和instance以及self的用法详解

    一. Python 的类和实例 在面向对象中,最重要的概念就是类(class)和实例(instance),类是抽象的模板,而实例是根据类创建出来的一个个具体的 "对象". 就好比,学生是个较为抽象的概念,同时拥有很多属性,可以用一个 Student 类来描述,类中可定义学生的分数.身高等属性,但是没有具体的数值.而实例是类创建的一个个具体的对象, 每一个对象都从类中继承有相同的方法,但是属性值可能不同,如创建一个实例叫 hansry 的学生,其分数为 93,身高为 176,则这个实例拥

  • 对python中url参数编码与解码的实例详解

    一.简介 在python中url,对于中文等非ascii码字符,需要进行参数的编码与解码. 二.关键代码 1.url编码 对字符串编码用urllib.parse包下的quote(string, safe='/', encoding=None, errors=None)方法. 对json格式的参数名和值编码,用urllib.parse包下的 urlencode(query, doseq=False, safe='', encoding=None, errors=None, quote_via=qu

  • Django中的模型类设计及展示示例详解

    django中设计数据模型类是基于ORM的对象关系映射更方便的进行数据库中的数据操作. 对象关系映射 把面向对象中的类和数据库表--对应,通过操作类和对象,对数表实现数据操作,不需要写sql,由ORM框架生成 django实现了ORM框架,在项目中与数据库之间产生桥梁作用 django数据库定义模型的步骤如下: python manage.py makemigrations python mange.py migrate 在应用models.py中编写模型类,继承models.Model类 在模

  • Java中文件的读写方法之IO流详解

    目录 1.File类 1.1File类概述和构造方法 1.2File类创建功能 1.3File类判断和获取功能 1.4File类删除功能 2.递归 2.1递归 2.2递归求阶乘 2.3递归遍历目录 3.IO流 3.1 IO流概述和分类 3.2字节流写数据 3.3字节流写数据的三种方式 3.4字节流写数据的两个小问题 3.5字节流写数据加异常处理 3.6字节流读数据(一次读一个字节数据) 3.7字节流复制文本文件 3.8字节流读数据(一次读一个字节数组数据) 3.9字节流复制图片 总结 1.Fil

  • 基于python中pygame模块的Linux下安装过程(详解)

    一.使用pip安装Python包 大多数较新的Python版本都自带pip,因此首先可检查系统是否已经安装了pip.在Python3中,pip有时被称为pip3. 1.在Linux和OS X系统中检查是否安装了pip 打开一个终端窗口,并执行如下命令: Python2.7中: zhuzhu@zhuzhu-K53SJ:~$ pip --version pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7) Python3.X中: z

  • python中的数组赋值与拷贝的区别详解

    具体的注解我已经写在了程序里面:通俗的解释了python里面的浅拷贝与深拷贝的不同,请看程序. # -*- coding: utf-8 -*- import numpy as np import copy as cp import matplotlib.pyplot as plt import time import math fig = plt.figure() ax = fig.add_subplot(241) # 定义一个多维数组 x = np.array([[1, 2, 3], [4,

随机推荐