node_names: List[str] | None = None
其中的node_names是参数名,冒号后面的部分叫做“类型注释”或者“类型注解”,用来说明
期望传入的参数类型。
List[str]表示列表类型,其中的元素都是字符串类型,又称元素为字符串的列表类型;
“|”这个符号叫做管道符号,此处表示“或者”的意思。注意此处的语法高版本(Python 3.10及以上)才支持,低版本一般用Union表示,例如Union[int, float, complex]意思是说参数可以是int、float或者complex类型。
所以node_names: List[str] | None的意思是说node_names的类型可以是元素为字符串的列表类型也可以是NoneType类型(None是NoneType类型的唯一值)。
至于最后的=None表示node_names这个参数的默认值为None。
特别注意:
类型注释不是强制的,加上类型注释可以明确告知调用方需要传入何种类型的值从而避免类型不一致引发的异常。由于类型注释不是强制的,所以简化后的__init__函数是这样的:
- def __init__(self, no_of_var, node_names=None):
- ...
复制代码
最后
以及这个定义的CausalGraph这个类 实例化后是不是就是直接命名no_of_var=???这样呢
这句话我不是很理解, 所以暂时无法给你更进一步的解答