python - Python中未填充的参数和静态方法
问题描述
这是一个与windows操作相关的程序。我制作了这个程序的不同版本。所以我尝试使用类编写一个版本。我是初学者,认为这将有助于我理解这个概念,但我遇到了一些错误,例如
Method 'shutdown_windows' may be 'static'
有很多这样的错误,我想了解一下它们以及如何解决它们
这是我的代码:
import os
import datetime
import time
class WindowsOperations(object):
def __init__(self, shutdown, restart, open_app, close_app):
self.shutdown = shutdown
self.restart = restart
self.open_app = open_app
self.close_app = close_app
def shutdown_windows(self):
time.sleep(remaining_time)
while True:
if time_hour == datetime.datetime.now().hour and time_minutes == datetime.datetime.now().minute: #
os.system("shutdown /s /t 1")
break
def restart_windows(self):
time.sleep(remaining_time)
while True:
if time_hour == datetime.datetime.now().hour and time_minutes == datetime.datetime.now().minute:
os.system("shutdown /r /t 1")
break
def open_application(self):
app_name_open = input("Enter the application name you want to open: ").lower() + ".exe"
time.sleep(remaining_time)
while True:
if time_hour == datetime.datetime.now().hour and time_minutes == datetime.datetime.now().minute:
os.startfile(app_name_open)
break
def close_application(self):
app_name_close = input("Enter the application name you want to close: ").lower() + ".exe"
time.sleep(remaining_time)
while True:
if time_hour == datetime.datetime.now().hour and time_minutes == datetime.datetime.now().minute:
os.system("TASKKILL /F /IM " + app_name_close)
break
choice = int(input("Enter your choice \n1.Shutdown Windows \n2.Restart Windows "
"\n3.Open an application \n4.Close an application \n:"))
time_hour = int(input("Enter hour: "))
time_minutes = int(input("Enter minutes: "))
time_now = datetime.datetime.now()
remaining_time = ((time_minutes - time_now.minute) * 60 + (time_hour - time_now.hour) * 3600) % 86400
print(remaining_time)
my_windows_operation = WindowsOperations('shutdown', 'restart', 'open_app', 'close_app')
if choice == 1:
my_windows_operation.shutdown_windows()
elif choice == 2:
my_windows_operation.restart_windows()
elif choice == 3:
my_windows_operation.open_application()
elif choice == 4:
my_windows_operation.close_application()
else:
print("Please enter a valid input")
如有必要,请修改代码并给我一些提示
解决方案
第二个“参数'shutdown'未填充”是一个错误。它的出现是因为您已将初始化程序定义WindowsOperations
为采用 4 个参数:
def __init__(self, shutdown, restart, open_app, close_app):
但是在实际创建对象时,您什么也没有传递:
my_windows_operation = WindowsOperations()
你肯定需要解决这个问题。
第一个“方法'shutdown_windows'可能是'静态'”更多的是一个建议。它的出现是因为该方法shutdown_windows
不使用self
- 即它不需要成为类的一部分来完成它的工作。
推荐阅读
- android - 发布 React Native .apk 以供演示使用
- python - 教程中的 Torchtext BucketIterator 包装器产生 SyntaxError
- python - 用 Python 绘制热图
- php - PHP Laravel - 类 [控制器名称] 控制器不存在
- c# - 我的简单 C# HTTP 服务器:嵌入式 HTML 链接在 Edge 浏览器中不起作用
- javascript - 从路由器获取数据
- r - `R` 语言是否覆盖变量值?
- database - 数据表数据不适用于表
- objective-c - 如何将属性“objective-c extension”添加到实现已知协议的匿名类
- javascript - 将回调转换为承诺的困惑