我有一个main.py
文件,其代码块如下:
import urtc
import machine
rtc = urtc.DS3231(machine.I2C(scl=machine.Pin(0), sda=machine.Pin(2)))
from func import * #line 4
现在,在第4行导入的func.py
文件的代码如下:
def current_time():
import urtc
import machine
rtc = urtc.DS3231(machine.I2C(scl=machine.Pin(0), sda=machine.Pin(2)))
return urtc.tuple2seconds(rtc.datetime())
在main.py
,我已导入urtc
和machine
并定义rtc
。是否可以从函数current_time()
中删除这3行:
import urtc
import machine
rtc = urtc.DS3231(machine.I2C(scl=machine.Pin(0), sda=machine.Pin(2)))
这似乎是多余的,因为我已经在main.py
全球范围内拥有它们。如何在main.py
全局中使用它们,而不是在函数current_time()
中再次导入它们?
答案 0 :(得分:1)
你应该在你的函数中使用参数,这实际上是糟糕的设计,就像你那样做。
import urtc
import machine
rtc = urtc.DS3231(machine.I2C(scl=machine.Pin(0), sda=machine.Pin(2)))
from func import *
def current_time(rtc):
return urtc.tuple2seconds(rtc.datetime())
current_time(rtc)
答案 1 :(得分:1)
您应该将field_my_url
实例传递给urtc.DS3231
函数,如下所示:
current_time
但您仍然需要def current_time(rtc):
return urtc.tuple2seconds(rtc.datetime())
中的import urtc
,以便func.py
可用。
答案 2 :(得分:0)
我建议你在func.py中加载依赖项(如果你没有在main.py的其他地方使用它们,那么这是一个更好的做法)。