1. Python中的self
在Python中,self
是一个特殊的参数,用于表示类的实例对象。当定义一个类时,类的方法第一个参数默认为self
,它可以让实例对象在调用方法时,将自身作为参数传入。
self的作用:
通过self
可以访问实例对象的属性和方法。
通过self
可以在类的方法内部,引用其他方法。
通过self
可以在类的方法内部,修改实例对象的属性。
1.1 使用self访问实例对象的属性和方法
在类的方法内部,可以使用self.属性名
来访问实例对象的属性,self.方法名()
来调用实例对象的方法。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def say_hello(self):
print("Hello, my name is", self.name)
person = Person("Alice", 25)
print(person.name) # 输出:Alice
person.say_hello() # 输出:Hello, my name is Alice
在上述的代码中,定义了一个Person类,有两个属性name和age,以及一个say_hello方法。在方法内部使用self.name
访问实例对象的name属性,在方法内部使用self.say_hello()
调用实例对象的say_hello方法。
1.2 使用self引用其他方法
在类的方法内部,可以使用self.方法名()
来引用其他方法,从而实现方法之间的调用。
class Calculator:
def add(self, a, b):
return a + b
def square(self, num):
return self.add(num, num)
calculator = Calculator()
result = calculator.square(5)
print(result) # 输出:10
在上述的代码中,定义了一个Calculator类,有两个方法add和square。在square方法内部,通过self.add(num, num)
调用了add方法,实现了平方运算。
1.3 使用self修改实例对象的属性
在类的方法内部,可以使用self.属性名 = 值
来修改实例对象的属性。
class Dog:
def __init__(self, name):
self.name = name
def rename(self, new_name):
self.name = new_name
dog = Dog("旺财")
print(dog.name) # 输出:旺财
dog.rename("小白")
print(dog.name) # 输出:小白
在上述的代码中,定义了一个Dog类,有一个属性name和一个rename方法。在rename方法内部,使用self.name = new_name
将实例对象的name属性修改为新的值。