我是Python的新手,对面向对象编程知之甚少。只想问一些关于对象,方法和函数的事情。
book = Workbook()
,有些没有括号。我可以知道两者之间的区别吗?b.get_sheet_names()
名称后面的方法有括号。 我是否知道在对象名称和方法之后包含括号的概念是什么。
答案 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不会静态检查这个。