python為什么closed_為什么python類的函數被調用兩次[關閉](Why a function of python class is called twice [closed])...

為什么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:

#...

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/370270.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/370270.shtml
英文地址,請注明出處:http://en.pswp.cn/news/370270.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php關聯數組和哈希表,php遍歷哈希表及關聯數組的實例代碼

有關php數組的分類,PHP數組分為:數字索引數組和關聯數組。其中數字索引數組和C語言中的數組一樣,下標是為0,1,2…而關聯數組下標可能是任意類型,與其它語言中的hash,map等結構相似。PHP遍歷關聯…

數字校園-云資源平臺 2014.10.26-人人通共享空間

近期,教育部在統計學校信息化建設情況,當中一項重要內容,作為三通兩平臺的一個環節,就是學校開通人人通空間的情況,網上普及了一下知識,不就是十多年前就玩的學校博客的變種嗎,網上有一些產品,也是沒有熱鬧起來,為要求而要求的多,既然要求,就來一個吧,花了幾天時間,也做了一個.…

VUE.js 中取得后臺原生HTML字符串 原樣顯示問題

今天使用vue調試頁面,發現了頁面上的一個問題,后臺數據傳過來的HTML字符串并沒有被轉換為正常的HTML代碼,一拍腦門,發現忘記轉換了,于是滿心歡喜加上了{{{}}}。但是之后構建發現報錯: 為此去官網上查了下…

高性能持久消息

總覽 盡管有許多可用于Java的高性能消息傳遞系統,但大多數都避免引用基準,包括持久消息傳遞和消息的序列化/反序列化。 這樣做有很多原因。 1)您并不總是需要或想要持久消息2)您希望使用自己的序列化選項。 避免使用它們的一個重要…

python去掉重復內容并按原來次序輸出元素_在Python中,從列表中刪除重復項以使所有元素在保留順序時都是唯一的最快的算法是什么?...

飲歌長嘯使用方法:lst [8, 8, 9, 9, 7, 15, 15, 2, 20, 13, 2, 24, 6, 11, 7, 12, 4, 10, 18, 13, 23, 11, 3, 11, 12, 10, 4, 5, 4, 22, 6, 3, 19, 14, 21, 11, 1, 5, 14, 8, 0, 1, 16, 5, 10, 13, 17, 1, 16, 17, 12, 6, 10, 0, 3, 9, 9, 3, 7, 7, 6, 6, 7, 5, 1…

Lucene –快速添加索引和搜索功能

什么是Lucene? Apache LuceneTM是完全用Java編寫的高性能,功能齊全的文本搜索引擎庫。 它是一項適用于幾乎所有需要全文搜索的應用程序的技術,尤其是跨平臺的應用程序。 Lucene可以純文本,整數,索引PDF,Of…

td 雙擊 編輯 php,雙擊表格td進行編輯

$(function(){//隔行換色// $("tbody tr:odd").css("background-color","#eee");var numId $(".tbody td");numId.dblclick(function(){var tdIns $(this);var tdpar $(this).parents("tr");//tdpar.remove();//current_…

前端開發之基礎知識-HTML(一)

1.1 html概述和基本結構 html概述 HTML是 HyperText Mark-up Language 的首字母簡寫,意思是超文本標記語言,超文本指的是超鏈接,標記指的是標簽,是一種用來制作網頁的語言,這種語言由一個個的標簽組成,用…

nodejs的async異步編程

函數有: series waterfall parallel parallelLimit … series函數 串行執行 它的作用就是按照順序一次執行。 async.series({ one: function(callback){ callback(null, 1); }, two: function(callback){ callback(null, 2); } },function(err, results) { conso…

《深入理解Java虛擬機》讀書筆記3--垃圾回收算法

轉載:http://blog.csdn.net/tjiyu/article/details/53983064 下面先來了解Java虛擬機垃圾回收的幾種常見算法:標記-清除算法、復制算法、標記-整理算法、分代收集算法、火車算法,介紹它們的算法思路,有什么優點和缺點,…

python常用函數中文_【python】python常用函數

urlencode與urldecode當url中包含中文或者參數包含中文,需要對中文或者特殊字符(/、&)做編碼轉換。urlencode的本質:把字符串轉為gbk編碼,再把\x替換成%。如果終端是utf8編碼的,需要把結果再轉成utf8輸出,否則會亂…

帶有批注的Spring硒測試

這篇文章描述了如何在Java中實現Selenium測試。 它的靈感來自Alex Collins的帖子,并帶有注釋。 該代碼可在GitHub的Spring-Selenium-Test目錄中找到。 一些替代方法和更輕巧的技術可用于對Spring MVC應用程序進行單元測試。 要進行單元測試服務,請參見此…

sizeof運算符

sizeof是一個單目運算符&#xff0c;它的運算對象是變量或數據類型&#xff0c;運算結果為一個整數。運算的一般形式如下: sizeof(<類型或變量名>) 它只針對數據類型&#xff0c;而不針對變量&#xff01; 若運算對象為變量&#xff0c;則所求的結果是這個變量占用的內存…

oracle 日志切換太頻繁,診斷一次Oracle日志切換頻繁的問題

日志切換&#xff0c;就是生成的日志太大&#xff0c;數據塊的變化太頻繁。Snap IdSnap TimeSessionsCursors/SessionBegin Snap:1456009-Dec-15 04:00:48594.5End Snap:1456109-Dec-15 05:00:59544.6Elapsed:60.19 (mins)DB Time:82.47 (mins)1s產生2M的日志。Per SecondPer T…

Flex布局(一)flex-direction

采用Flex布局的元素&#xff0c;被稱為Flex容器(flex container)&#xff0c;簡稱"容器"。其所有子元素自動成為容器成員&#xff0c;成為Flex項目(Flex item)&#xff0c;簡稱"項目" Flex-direction調整主軸方向&#xff08;默認為水平方向&#xff09;包…

【升級版】如何使用阿里云云解析API實現動態域名解析,搭建私有服務器【含可執行文件和源碼】...

原文地址&#xff1a;http://www.yxxrui.cn/article/179.shtml 未經許可請勿轉載&#xff0c;如有疑問&#xff0c;請聯系作者&#xff1a;yxxrui163.com 我遇到的問題&#xff1a;公司的網絡沒有固定的公網IP地址&#xff0c;但是需要能夠保證的是&#xff0c;每次動態分配的I…

Java管理擴展

什么是JMX&#xff1f; Java管理擴展&#xff08;JMX&#xff09;是一種API&#xff0c;用于管理或監視各種資源&#xff0c;例如應用程序&#xff0c;設備&#xff0c;服務&#xff0c;當然還有JVM。 通過Java社區流程&#xff08;JCP&#xff09;開發&#xff0c;JMX技術被構…

登錄網頁后要彈出一個新標簽_連永久鏈接都不會,還做什么新媒體?

上次給主編大大發的預覽鏈接失效了&#xff0c;被罵得狗血淋頭。大部分運營人可能都遇到過這種情況&#xff0c;忽視了預覽生成的鏈接只是臨時的&#xff0c;在12小時后或超過500閱讀量后就會失效。一個疏忽&#xff0c;給自己帶來了不必要的麻煩&#xff0c;耽誤工作&#xff…

混頻通信的matlab仿真,基于MATLAB的擴頻通信系統仿真研究—上海交通大學

基于MATLAB 的擴頻通信系統仿真研究范偉 翟傳潤 戰興群(上海交通大學電子信息與電氣工程學院&#xff0c;200030&#xff0c;上海)摘要 本文闡述了擴展頻譜通信技術的理論基礎和實現方法&#xff0c;利用MATLAB 提供的可視化工具Simulink 建立了擴頻通信系統仿真模型&#xff0…

static_cast與dynamic_cast轉換

static_cast與dynamic_cast轉換   一 C語言中存在著兩種類型轉換&#xff1a; 隱式轉換和顯式轉換 隱式轉換&#xff1a;不同數據類型之間賦值和運算&#xff0c;函數調用傳遞參數……編譯器完成 char ch;int i ch; 顯示轉換&#xff1a;在類型前增加 &#xff1a;&#xff…