简单的问题。什么是使类无法实例化的最pythonic方法。
我知道这可以通过覆盖新的__new__
并在那里引发异常来完成。还有更好的方法吗?
我有点在抽象的班级方向。但是,我 NOT 将此类用作基类到任何其他类。并且 NOT 会在课程中定义抽象方法。
没有这些,抽象类在实例化时不会引发任何异常。
我看过这个答案。这不是我想要的。 Is it possible to make abstract classes in Python?
编辑:
我知道这可能不是最好的方法,但这是我解决我需要的东西的方式。我认为这是一个简单的问题,可以有一个肯定+解释或没有答案。答案/评论基本上相当于,你不应该问这个问题没什么意义。
答案 0 :(得分:0)
您之后能够只调用math.sin(x)之类的东西吗?
你把它变成一个静态的方法。你只是不做任何实例。
Private Sub Test()
Try
For i = 0 To SomeIndex
Dim excel As Excel.Application = New Excel.Application
Dim workbook As Excel.Workbook = excel.Application.Workbooks.Add(True)
Dim worksheet As Excel.Worksheet = DirectCast(workbook.Worksheets("Feuil1"), Excel.Worksheet)
'
'Some Excel stuff here
'
'Left the following lines here, maybe it is related to the range ?
excel.Cells.EntireColumn.AutoFit()
worksheet.Range("A3:G3").Select()
excel.Selection.AutoFilter()
worksheet.Range("A1").Select()
workbook.SaveCopyAs(NomPJ)
excel.Cells.ClearContents()
workbook.Close(False)
excel.Quit()
CloseExcel(worksheet)
CloseExcel(workbook)
CloseExcel(excel)
Next
Catch ex As Exception
MessageBox.Show(ex.ToString())
End Try
End Sub
如果你在想为什么你实际上不能做=数学() 因为数学,不是一个阶级。它是一个单独的脚本,其中包含所有这些功能。
所以你可能想要制作一个包含所有静态内容的单独脚本。 ;)
如果你想要在同一个脚本中的所有内容,那么它只是局部变量。如果你像我一样,你宁愿用课程组织得恰到好处,看起来你可能最好只做一个正常的课程,并只创建一个实例