类 in Python - 何时使用括号
Classes in Python - when to use parentheses
class Example:
def __init__(self, sides, name):
self.sides = sides
self.name = name
为什么下面的附加属性(interior_angles和角度)没有在括号中定义,然后在函数中写出来?
class Example:
def __init__(self, sides, name):
self.sides = sides
self.name = name
self.interior_angles = (self.sides-2)*180
self.angle = self.interior_angles/self.sides
我还看到一些属性是在括号内定义的。在什么情况下你应该这样做?例如:
class Dyna_Q:
def __init__(self, environment, alpha = alpha, epsilon = epsilon, gamma = gamma):
谢谢。
__init__
方法是对象的构造函数。这意味着他的参数是您初始化每个对象实例所需的基本参数。
另一方面,“interior_angles”和“角度”是根据边计算的属性。
编程中的正则括号 ()
通常与它们在数学中的用法非常相似:将内容组合在一起并更改运算顺序。
4 - 2 == ( 4 - 2 )
会是真的,但是
(4 - 2) / 2 == 4 - 2 / 2
不会。此外,正如您正确观察到的那样,它们基本上用于告诉解释器函数名称结束和参数开始的位置,因此在函数定义的情况下,它们位于名称之后和 :
之前。上一个示例中的赋值并不是真正的赋值,而是默认值;我假设你的范围内有全局变量 alpha
等等,这就是为什么它有效。
那么什么时候使用括号呢?例如:
- 当您想更改操作顺序时。
- 当你想调用或定义一个函数时。
- 当你想定义一个 class
class Myclass(MyBaseClass): ...
的继承时
- 有时是元组,尽管
return a, b
和 return (a,b)
是同一回事。
- 与数学一样,可以使用额外的括号来明确运算顺序,例如
(4-2) == (4-2)
显示计算在比较之前完成。
在python的构造函数中,'self'指向当前要创建的对象
您的问题:
为什么下面的附加属性(interior_angles和角度)没有定义在括号里,然后在函数里写出来?
事实是,如果您有一个现成的值要在新创建的对象中设置,您将将该值传递给括号内的构造函数。
但是,如果您不知道要放入新对象中的值,并且还需要计算该值,则不会传递括号内的值。
核心是理解'self'关键字。
如果您执行 self. = ,您将在对象中创建一个新的 属性(字段)。
class Example:
def __init__(self, sides, name):
self.sides = sides
self.name = name
为什么下面的附加属性(interior_angles和角度)没有在括号中定义,然后在函数中写出来?
class Example:
def __init__(self, sides, name):
self.sides = sides
self.name = name
self.interior_angles = (self.sides-2)*180
self.angle = self.interior_angles/self.sides
我还看到一些属性是在括号内定义的。在什么情况下你应该这样做?例如:
class Dyna_Q:
def __init__(self, environment, alpha = alpha, epsilon = epsilon, gamma = gamma):
谢谢。
__init__
方法是对象的构造函数。这意味着他的参数是您初始化每个对象实例所需的基本参数。
另一方面,“interior_angles”和“角度”是根据边计算的属性。
编程中的正则括号 ()
通常与它们在数学中的用法非常相似:将内容组合在一起并更改运算顺序。
4 - 2 == ( 4 - 2 )
会是真的,但是
(4 - 2) / 2 == 4 - 2 / 2
不会。此外,正如您正确观察到的那样,它们基本上用于告诉解释器函数名称结束和参数开始的位置,因此在函数定义的情况下,它们位于名称之后和 :
之前。上一个示例中的赋值并不是真正的赋值,而是默认值;我假设你的范围内有全局变量 alpha
等等,这就是为什么它有效。
那么什么时候使用括号呢?例如:
- 当您想更改操作顺序时。
- 当你想调用或定义一个函数时。
- 当你想定义一个 class
class Myclass(MyBaseClass): ...
的继承时
- 有时是元组,尽管
return a, b
和return (a,b)
是同一回事。 - 与数学一样,可以使用额外的括号来明确运算顺序,例如
(4-2) == (4-2)
显示计算在比较之前完成。
在python的构造函数中,'self'指向当前要创建的对象
您的问题: 为什么下面的附加属性(interior_angles和角度)没有定义在括号里,然后在函数里写出来?
事实是,如果您有一个现成的值要在新创建的对象中设置,您将将该值传递给括号内的构造函数。
但是,如果您不知道要放入新对象中的值,并且还需要计算该值,则不会传递括号内的值。
核心是理解'self'关键字。
如果您执行 self.