来自VB.Net的Python补丁

时间:2015-12-19 16:47:32

标签: python

在VB.NET中你可以这样做.. 你有一个这样的子:

 Private Sub RandomSub()
     'blablabla
 End Sub


 Private Sub Button1_Click(Byval.. Byref..) As Button1.Click
      RandomSub()
 End Sub

如何在python中创建subs并在需要时调用它们?我知道的 DEF 的事情,但是它呢?

2 个答案:

答案 0 :(得分:1)

在Python中,你可以像你所说的那样使用def关键字定义函数或方法,但是没有办法真正做到Sub在VB.Net中做的事情。您应该从函数返回任何相关值,并将它们分配给调用函数中的变量。

def RandomSub():
    rndstring = "something"
    return rndstring

def Button1_Click(param1, param2):
    rndstring = RandomSub()
    # use rndstring here

您还可以从函数中返回元组并将其解压缩到赋值语句

def RandomSub():
    var1 = "something"
    var2 = "something"
    var3 = "something"
    return var1,var2,var3

def Button1_Click(param1, param2):
    rndstring1,rndstring2,rndstring3 = RandomSub()
    # use rndstrings here

答案 1 :(得分:0)

我在wilbur的回答下面阅读了对话,但我想我会添加一个直接解决问题的答案,仅供将来的stackoverflow读者使用。

在VB中SubFunction不同。 Sub是一个无法返回任何内容的可重用代码块,而Function是一个返回值的代码块。在Python(和大多数其他编程语言)中,"函数"是一段可以选择返回值的代码块。因此,在Python中,您使用def代替VB SubFunction

此外,在VB中,您必须声明Function的返回类型,而在Python中则不是。

因此:

Private Sub RandomSub()
    'Do something
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    RandomSub()
End Sub

在Python中会是这样的:

def _random_sub():
    # Do something

def _button1_click(sender, e):
    _random_sub()