在对象和方法的名称之后的括号的目的

时间:2018-01-16 13:43:04

标签: python

我是Python的新手,对面向对象编程知之甚少。只想问一些关于对象,方法和函数的事情。

  1. 我注意到一个对象在其名称后面有括号,如book = Workbook(),有些没有括号。我可以知道两者之间的区别吗?
  2. 同样,对于方法b.get_sheet_names()名称后面的方法有括号。
  3. 我是否知道在对象名称和方法之后包含括号的概念是什么。

2 个答案:

答案 0 :(得分:0)

名称后面的括号表示在那里调用函数/方法。

可以通过调用其构造函数(__init__函数)来创建对象。通过将类本身作为函数Workbook()

调用来调用构造函数

使用括号类似地调用函数或对象方法。

答案 1 :(得分:0)

空括号表示没有参数的函数调用。在这两种情况下,你都提到这与调用对象/成员的方式一致,如果它们有任何参数。

circle = Circle(10) squared = square_me(2)

第一种情况对面向对象编程很特殊:它是构造函数调用。这些由Python中的__init__ - 方法指定。在这种情况下,构造函数不带参数。没有参数调用的概念在Python中是有意义的,因为没有参数的函数通常具有可观察的副作用,例如print_line_of_ones(),或者对象基于对象状态执行某些操作,例如,circle.getArea() 。在Python中,class - 成员函数将对象本身self作为第一个参数。

如果没有参数(例如Scala),有些语言允许你省略括号,但Python要求你使用它们,这是合理的,因为它可能很难将它们与成员区分开来,而Python不会静态检查这个。