为什么python类的函数被调用两次[关闭](Why a function of python class is called twice [closed])

我遇到了两次调用的python类函数的问题。 我正在使用Spyder IDE。

这是我的简单代码

class Test:

def f(self):

print("a")

from Test import *

t = Test()

t.f()

当我按“运行文件”按钮...结果是

a

a

但当我尝试突出显示所有内容并按“运行单元格”时...结果是

a

我想知道当我按“运行文件”时会发生什么,以及如何解决这个问题。

非常感谢

I am having a problem with the function of python class that is called twice. I am using Spyder IDE.

Here is my simple code

class Test:

def f(self):

print("a")

from Test import *

t = Test()

t.f()

When I press "Run File" button...the result is

a

a

But when I try to highlight everything and press "Run Cell"...the result is

a

I would like to know what happen when I press "Run File" and how to solve this issue.

Many thanks

原文:https://stackoverflow.com/questions/42620635

2020-02-19 17:30

满意答案

因为你应该导入模块 ,而不是类。 因此,当您from Test import *执行操作时from Test import *您正在运行所有代码,其中包括实例化和调用f方法。 导入后,你实例化并再次调用它,这就是它被打印两次的原因,因为它正在运行两次。

Because you should import modules, not classes. So when you are doing from Test import * you are running all your code, which includes the instantiation and call to the f method. And after importing you are instantiating and calling it again, so that's the reason it is being printed twice, because it is being run twice.

2017-03-06

相关问答

这可能不直接回答你的问题,但一定会有帮助。 如果使用具有选项--sort累积的分析器,它将按累积时间对功能进行排序。 这有助于检测不仅重要的功能,而且检测它们的功能。 python -m cProfile --sort cumulative myScript.py

有一个解决方法来获取调用者的功能: import inspect

print inspect.getframeinfo(inspect.currentframe().f_back)[2]

您可以添加任意数量的f_back,以防您想要...

您的代码段中未调用此函数两次。 我假设我们还没有看到更多的代码,它们调用myFunction ; 然后,调用该函数两次的目的是显示排序函数的效果。 假设在显示函数之后调用myFunction ,程序将执行以下操作: 以他们开始的(未分类)顺序显示汽车 运行myFunction对汽车进行排序,然后再次显示它们 这将允许用户在排序之前和之后查看汽车列表之间的差异。 The function is not called twice in your snippet. I'm assuming there'...

class information:

def __init__(self, name, age, gender, enlistmentNum):

self.name = name

self.age = age

self.gender = gender

self.enlistmentNum = enlistmentNum

self.playerinf()

在init函数结束时调用playerinf。 在实例化...

对于你的例子, a = b.method(c); ,除了复制省略外,可能会有三份副本。 第一种是将c对象复制到函数参数x 。 第二个是从函数返回x对象的时候。 第三种是将返回值复制到对象中。 前两个涉及复制构造函数,最后一个涉及复制赋值运算符,除非您将其更改为Student a = b.method(c); ,在这种情况下,他们都使用复制构造函数。 a , b和c都将在其范围的末尾被销毁。 对象x将在method函数的末尾被销毁。 函数的返回值将在包含它的完整表达式的末尾被销毁 - 也就是说,一旦...

在我看来,如果您在测试时编写函数以不同的方式运行,那么您并没有真正测试它。 为了测试函数,我会mock.patch()数据库对象,然后检查它在函数中是否正确使用。 开始使用模拟库时最困难的事情是找到要替换的正确对象 。 在您的示例中,如果在your_module从Database_IO模块导入Database_read对象,则可以使用类似于以下内容的代码对其进行测试 with mock.patch('your_module.Database_read') as dbread_mock:

#...

python为什么closed_为什么python类的函数被调用两次[关闭](Why a function of python class is called twice [closed])...相关推荐

  1. python类中函数互相调用记得带self

    import time from selenium import webdriver import pymysql import uuid class  main (object): def  __i ...

  2. python什么时候用函数和类_【Python】一文说清楚类与函数的选择

    前两天一位已经学习python一段时间的小伙伴问了这样一个问题:虽然已经使用python一年多了,也用python写过很多脚本,代码量从几十行到上千行的也有,但是从未使用过类(class),似乎用函数 ...

  3. python学习笔记-为自定义类或者函数编写help文档,以及进行文档测试

    在python中我们可以利用help("模块名")或者help(类名)的方式来查看类或者函数的文档.但是它们是如何编写的呢? 其实它们在类最前面或者方法的最前面用"&qu ...

  4. Python 函数式编程,Python中内置的高阶函数:map()、reduce()、filter()与sorted(),Python中返回函数

    函数式编程 是一种编程范式,比函数更高层次的抽象. 函数式编程将计算视为函数而非指令. 纯函数式编程:不需要变量,没有副作用,测试简单. 支持高阶函数,代码简洁. Python 支持的函数式编程 不是 ...

  5. Cpp 对象模型探索 / 类静态成员函数的调用方式

    一.普通静态成员函数的调用方法 栗子: class CA { public:static void func() {} };int main() {CA A;A.func();CA::func();r ...

  6. 【Python】对象(包括类、函数)取名方法

    先上干货,通用的: 字母:A-Z a-z 下划线:_ 数字:0-9(注意:数字不能在开头) 理论上可以使用中文变量名,但强烈不建议使用. 合法名字举例 abcdef GoodCoder AD_fhry ...

  7. python定义一个复数类complex、内有两个成员变量_python(一):python语言基础

    一.python语言基本的8个要素 Python语言的8个要素:数据类型.对象引用.组合数据类型.逻辑操作符.运算操作符.控制流语句.输入/输出.函数的创建与引用.除此之外还有一个非常重要且无处不在的 ...

  8. python创建函数如何调用字典对象_我不知道如何用Python创建一个调用我函数的字典...

    除了不传递值并尝试调用dict之外,您正在计算列表完全填充之前的平均值,在代码中,当您完成附加后,在循环外计算平均值:def posNumAvg(values): pos = [] # average ...

  9. Xposed如何实现类中函数的调用

    0x01前言 之前学习了Xposed如何实现不重新打包APP的条件下,实现函数的Hook,在使用过程中,除了方法的hook,比如我要实现某些函数额调用,不同类中的函数和Native方法的调用. 0x0 ...

最新文章

  1. redhat7配置本地yum、163 yum、epel 源
  2. AI领域五年引用量最高的10大论文:Adam登顶,AlphaGo、Transfromer上榜
  3. vsftpd服务安装与虚拟用户配置
  4. HTML5手机页面里面如何把长按复制避免
  5. 研磨数据结构与算法-06递归的应用
  6. TF版本升级问题集合:成功解决由于不同的TensorFlow版本之间某些函数的用法引起的错误
  7. 钉钉小程序数据传递——子传父,父传子
  8. Java HashMap元素取值
  9. Eclipse4.2界面难看,启动速度,修改方法
  10. 视频内容理解核心技术解密:Partial re-ID 在成片体检中的技术实践
  11. tcp协议和udp协议区别_TCP和UDP协议有什么区别?
  12. 后端游戏引擎调研-2021.07
  13. 【数竞笔记2】—— 常见积分方法
  14. 拟人拟物法求解不等圆Packing问题
  15. Python — sklearn 分类效果评估
  16. 如何防止局域网病毒春风吹又生--之二
  17. Git系列之设置邮箱和用户名
  18. 1. 在 SAP ABAP 事物码 SEGW 里创建 SAP OData 项目
  19. OS知识点汇总(考研用)——第二章:进程管理(下)
  20. 分享 75 个精选的 JavaSript 基础知识点(中)

热门文章

  1. pythonsqlite3模糊_Python编写通讯录通过数据库存储实现模糊查询功能
  2. 一般一个前端项目完成需要多久_一种按周迭代的敏捷式项目管理方法
  3. 计算机组成原理mbps,2016年湖北师范学院计算机组成原理(同等学力加试)复试笔试仿真模拟题...
  4. 比java好的_Java Spring真的比直接进行Java编程好吗
  5. datetime unix php,PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】...
  6. 在HTML中嵌入PHP代码,有以下几种方法,其中错误的是( )
  7. 为啥这么多程序员大佬学习Cortex-M3
  8. Autorize插件的使用方法
  9. Kali利用msf对MS10_061漏洞进行渗透测试
  10. php 判断两个数组差集,php array_udiff_assoc 计算两个数组的差集实例