self后面的方法可以乱加吗?
2.那个if self.f:是什么意思?感觉不像判断语句啊?
问题点: self.f 是什么?
分析思路:FileMgr是一个类,那么self.f是类的属性, 它的传递方式可以通过 self.属性的方式来进行传递,一般在__init__方法里定义。
它可以在其他函数方法里赋值,比如读取文件时,它由初始值None被赋值为文件属性.
后续有个判断if self.f 实际含义是判断它有没有获取到文件属性,被赋值后,才能执行相应的文件操作.
self.是定义类的成员变量,双下划线开头的是魔术方法
首先,self.f
在上述代码中是指类的一个属性或实例变量。这个属性可以在类的各个方法中使用并且可以存储和访问不同的值。self
表示当前对象实例,而 f
是该实例的一个属性或变量名。
关于括号的问题,self.f
中的括号不是必需的。括号通常用于方法调用,而在这种情况下,self.f
是一个属性或变量,没有执行方法的操作。
self
并不是某个类的名称的缩写,而是约定俗成的表示当前对象实例的关键字。在定义类的方法时,第一个参数通常为 self
,它指代了当前对象实例本身。
在 Python 中,可以随意在类的方法后面添加新的方法。这是因为 self
实际上是一个指向类的引用,可以在该引用上添加新的属性和方法。
if self.f
表示一个条件判断语句,其中 self.f
是一个表达式。在 Python 中,不仅可以使用布尔值作为条件,还可以使用其他类型的值。在这种情况下,self.f
的值将被解释为布尔值。如果 self.f
的值为真,则条件成立;否则,条件不成立。
不过,根据您提供的代码截图来看,self.f
在 __init__
方法中是一个类的属性,并且它在 inspect
方法中被重新赋值为一个方法。因此,在条件语句 if self.f:
中,self.f
会根据赋值的不同而变化。如果 self.f
被赋值为一个方法,则条件判断为真,否则为假。