__init__(): 初始化方法
在Python中,__init__()
方法是一个特殊的构造函数,用于在创建对象时进行初始化设置。每个类都继承自一个最基础的类 object
,后者提供了一个默认的 __init__()
方法,该方法实际上不做任何事情(即包含 pass
)。开发者可以选择覆盖这个方法来实现自己的初始化逻辑。如果不实现 __init__()
,虽然对象仍然可以被创建,但其属性将不会被显式初始化,这可能会导致潜在的问题。
class Employee:
'所有员工的基类'
empCount = 0
def __init__(self, name, salary):
self.name = name
self.salary = salary
Employee.empCount += 1
def displayCount(self):
print("Total Employee %d" % Employee.empCount)
def displayEmployee(self):
print("Name : ", self.name, ", Salary: ", self.salary)
__str__(): 字符串表示方法
__str__()
方法用于返回一个对象的易读字符串表示形式。当使用 print()
函数输出对象时,如果定义了 __str__()
方法,则会输出该方法返回的内容。这对于调试和日志记录非常有用。
class Cat:
def __init__(self, age, sex):
self.age = age
self.sex = sex
def __str__(self):
return "年龄是:%s , 性别是:%s" % (self.age, self.sex)
x = Cat(34, 'male')
print(x) # 输出: 年龄是:34 , 性别是:male
__call__(): 使对象可调用
__call__()
方法允许一个类的实例像普通函数一样被调用。通过定义 __call__()
,可以使对象的行为更加灵活,适用于需要动态调用的场景。
class Person:
def __init__(self, name, gender):
self.name = name
self.gender = gender
def __call__(self, friend):
print('My name is %s...' % self.name)
print('My friend is %s...' % friend)
p = Person('Bob', 'male')
p('Tim') # 输出: My name is Bob... My friend is Tim...
__name__ == '__main__': 程序入口点
__name__
是一个内置属性,每个Python脚本都有一个 __name__
属性。当脚本作为主程序运行时,__name__
的值为 '__main__'
;当脚本作为模块被其他脚本导入时,__name__
的值为模块名。这一特性常用于确保某些代码仅在脚本直接运行时执行,而不是在被导入时执行。
# my_module.py
if __name__ == '__main__':
print('This code runs only when the script is executed directly.')
通过这种方式,可以在模块文件中编写测试代码或示例,而不影响其他脚本对该模块的正常使用。