相关疑难解决方法(0)

如果__name__ =="__ main__":怎么办?

怎么if __name__ == "__main__":办?

# Threading example
import time, thread

def myfunction(string, sleeptime, lock, *args):
    while True:
        lock.acquire()
        time.sleep(sleeptime)
        lock.release()
        time.sleep(sleeptime)

if __name__ == "__main__":
    lock = thread.allocate_lock()
    thread.start_new_thread(myfunction, ("Thread #: 1", 2, lock))
    thread.start_new_thread(myfunction, ("Thread #: 2", 2, lock))
Run Code Online (Sandbox Code Playgroud)

python program-entry-point idioms namespaces python-module

5545
推荐指数
36
解决办法
261万
查看次数

从另一个文件中的类导入函数?

我正在编写一个有趣的Python程序但是试图从另一个文件中的类导入函数时遇到困难.这是我的代码:

#jurassic park mainframe

from random import randint
from sys import exit
from comm_system import Comm_system #the file i want to import from



class Jpark_mainframe(object):
    def mainframe_home(self):
        print "=====Welcome to the Jurassic Park Mainframe====="
        print "==========Security Administration==============="
        print "===========Communications Systems==============="
        print "===============System Settings=================="
        print "===================Quit========================="

        prompt = raw_input("What would you like to do? ")

        while prompt != "Quit":

            if prompt == "Security Administration":
                print "Please enter the 5-digit passcode:"
                security_passcode = "%d%d%d%d%d" % (2, 0, 1, 2, randint(1, 2))
                security_guess …
Run Code Online (Sandbox Code Playgroud)

python import class

58
推荐指数
2
解决办法
22万
查看次数

导入python模块而不运行它

我需要从另一个运行其中的东西的python文件中导入一个函数,但是当我导入函数时,它运行整个代码而不是只导入我想要的函数.反正只有从另一个.py文件导入一个函数而不运行整个代码?

python module function python-import

11
推荐指数
2
解决办法
1万
查看次数

如何使 python 文件可作为脚本运行并可作为包导入?

我仍在尝试掌握 python 3,但遇到了一个问题,我可以将 .py 文件作为脚本运行,也可以将其作为模块导入,但不能同时运行两者。

目录结构

test/
  __init__.py
  test.py
  subwayclock/
    __init__.py
    subwayclock.py
    build/
      gen/
        __init__.py
        gtfs_realtime_pb2.py
        nyct_subway_pb2.py
      __init__.py
Run Code Online (Sandbox Code Playgroud)

在这种情况下 test.py 看起来像这样并且可以工作(rawFEED()是subwayclock.subwayclock中的一个函数):

from subwayclock.subwayclock import *

print(rawFEED())
Run Code Online (Sandbox Code Playgroud)

但是,我无法直接运行脚本,即

python subwayclock/subwayclock.py
Run Code Online (Sandbox Code Playgroud)

因为它给出了以下错误:

Traceback (most recent call last):
  File "subwayclock.py", line 32, in <module>
    from .build.gen.gtfs_realtime_pb2 import FeedMessage
SystemError: Parent module '' not loaded, cannot perform relative import
Run Code Online (Sandbox Code Playgroud)

但是,如果我修改 Subwayclock/subwayclock.py 中的导入语句以声明(即删除前导“.”):

from subwayclock.subwayclock import FeedMessage
Run Code Online (Sandbox Code Playgroud)

我可以直接通过命令行运行substituteclock.py脚本,完美调用main函数。

但是,当我运行原始 test.py 文件时,导入语句不再起作用,并且出现以下错误:

  Traceback (most recent call last):
  File "test.py", line 1, in <module>
        from …
Run Code Online (Sandbox Code Playgroud)

python python-import python-3.x

5
推荐指数
1
解决办法
4294
查看次数

为什么简单地导入python模块会执行该模块中的所有内容?

最近我注意到使用模块是保持我的python编程整洁的好选择.为了开始,我创建了一个模块(名为oop.py),其中包含一个类,如下所示:

#Module named oop

class Team:

    def __init__(self):
            print "class Team initialized"

    def displayTeam(self):
            print "Team name: ", self.name, ",Rank :" , self.rank

    def setTeam(self,name,rank):
            self.name = name
            self.rank = rank


t1 = Team()
t1.setTeam("Man-Utd", 1)
t1.displayTeam()
Run Code Online (Sandbox Code Playgroud)

根据python文档,如果我们想要使用模块中的特定属性,那么我们使用<from module_name> import <attribute>.我只想加载"班级队"

在另一个python代码(名为oop1.py)中,我只是导入了上面的模块.oop.py如下所述:

#This is oop1.py.          
#Importing module oop

from oop import Team
Run Code Online (Sandbox Code Playgroud)

python oop1.py终端的输出是:

class Team initialized
Team name:  Man-Utd ,Rank : 1
Run Code Online (Sandbox Code Playgroud)

通过声明from oop import Team,我期望只加载类定义.为什么t1 = Team() t1.setTeam("Man-Utd", 1) t1.displayTeam() 来自oop.py的额外行会被执行?

模块中是否允许初始化?如果我只想要类Team结构而不是模块的其他内容,我该怎么办?如果我在某处错了,请告诉我.

python python-module python-2.7

4
推荐指数
1
解决办法
430
查看次数

从另一个.py文件导入函数不仅仅导入该函数?

为了说明我遇到的问题,请考虑以下问题.我有两个.py文件,一个名为main.py,另一个名为testfuction.py.它们都在同一目录中.

main.py的内容:

from testfunction import mytestfunction

mytestfunction()
Run Code Online (Sandbox Code Playgroud)

testfunction.py的内容:

def mytestfunction():
    for number in range(0,10):
        print number

print "Hi"
Run Code Online (Sandbox Code Playgroud)

我的印象是导入函数只会导入该函数.但是,当我运行main.py时,这就是我得到的:

Hi
0
1
2
3
4
5
6
7
8
9
>>> 
Run Code Online (Sandbox Code Playgroud)

为什么要调用打印功能?它不是我导入的功能的一部分!

python python-2.7

3
推荐指数
1
解决办法
152
查看次数

如何在不运行该程序的情况下从另一个文件导入变量?

我想使用 from 导入函数从另一个程序导入变量。示例代码:

script1:
c=1
print('hello')

script2:
from script1 import c
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,我的反应是:

hello
10
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以只显示变量 c 进行此运行。

python python-3.x

0
推荐指数
1
解决办法
2310
查看次数

为什么Hello只打印两次?

主文件

#main.py
import main
print('Hello')
Run Code Online (Sandbox Code Playgroud)

输出

Hello
Hello
Run Code Online (Sandbox Code Playgroud)

我相信,当涉及到该行时import main,当时main已注册sys.modules,因此另一个脚本的 import 语句(我相信它不是其中的一部分__main__)不会被执行。有人可以告诉我我是否理解正确?如果不是,请给出解释。

python module sys

0
推荐指数
1
解决办法
91
查看次数