我是python的新手,我想尝试从一个文件移到另一个文件,例如无限循环地遍历fileA和fileB。但是,当我尝试使用导入功能时,文件仅互相导入一次,然后停止。有没有办法多次导入整个文件?
FileA:
story1 = "You see a statue of a metal man peeking out of a building. A park is just across the street.\n\nPossible exits: north."
map_legend = "\nMap Legend:\nG you\n. clear path\n-| wall\n+ door\n"
map1 = "-.\n |G\n-//\n|.|\n---"
while True:
print(story1)
action = input(str())
while action != 'north':
print ('there is nothing there.')
action = input(str())
***import story2***
continue
FileB:
story2 = "You see a map on the bench. Type 'grab' to pick it up.\n\nPossible exits: north and south."
map_legend = "\nMap Legend:\nG you\n. clear path\n-| wall\n+ door\n"
map1 = "-.\n |G\n-//\n|.|\n---"
inventory=list()
action = 'north'
while True:
print(map_legend,"\n",map1,"\n")
direction = f"you moved {action}."
print(direction)
print(story2)
action = input(str())
while action != 'north' and action != 'south' and action != 'grab':
print ('there is nothing there.')
action = input(str())
if action == 'grab':
inventory.append('1 map')
print ("Inventory:\n1 map")
action = input(str())
while action != 'north' and action != 'south':
print ('there is nothing there.')
action = input(str())
if action == 'south':
direction = f"you moved {action}."
print(direction)
***import story1***
continue
因此,从文件A移到文件B没问题,但是从文件B移到文件A后,我再也无法“导入”文件B了。这里的“导入”功能使用不正确吗?
谢谢。
答案 0 :(得分:2)
解决方案是将要重用的代码放在importlib.reload
中,然后可以反复调用函数以执行所需的操作。
例如:
A.py
def do_thing():
# some code
def do_other_thing():
# more code
B.py
import A
while True:
A.do_thing()
A.do_other_thing()
答案 1 :(得分:0)
每个文件都应该定义一个 function (使用.py
关键字),而不是直接在def
文件中编写代码。然后,您可以import
从这些文件中调用函数,并在一个循环中依次调用它们。
也就是说,如果您真的要重新导入模块(而不是仅重复使用import
语句所使用的现有模块对象),则可以使用{{3 }}。
答案 2 :(得分:0)
在fileA和fileB中定义一个函数。使用这些文件及其功能将其导入模块并创建一个相互调用的循环。但是,这不是一个好方法。
答案 3 :(得分:0)
您应该使用def()来执行此操作。因此,对于文件,您的代码将是
#price {
font-weight: bold;
border: none;
font-size: 1.5em;
}
#currency {
color: #000000;
font-size: 1.5em;
font-weight: bold;
margin-right: .3rem;
}
#price:focus {
outline: none;
}
#price-info {
display: flex;
align-items: center;
}
#size-price{
margin-left: -5rem;
}
.itens{
display: inline-block;
width: fit-content;
}
然后应将文件a和b的函数放在同一python文件中,并使用<div id="price-info">
<p class="itens" id="currency">U$S</p>
<input class="itens" id="price" type="text" value={this.state.price} onChange={this.handleChange} />
<p class="itens" id="size-price">$/m2{sizePrice}</p>
</div>
和def fileA():
story1 = "You see a statue of a metal man peeking out of a building. A park is just across the street.\n\nPossible exits: north."
map_legend = "\nMap Legend:\nG you\n. clear path\n-| wall\n+ door\n"
map1 = "-.\n |G\n-//\n|.|\n---"
while True:
print(story1)
action = input(str())
while action != 'north':
print ('there is nothing there.')
action = input(str())
***import story2***
continue
运行。全部放在一个python文件中。
如果要从另一个python文件中调用它,则必须执行fileA()
,然后运行fileB()