在Python中,类是面向对象编程的基本概念之一。类中的函数通常称为方法,方法与普通函数的区别在于,它们必须在类的内部定义,并且第一个参数必须是selfself代表类的实例对象,在方法内部可以通过它来访问类的属性和调用其他方法。

要调用类中含有self的方法,需要先创建类的实例对象,然后通过实例对象来调用该方法。下面是一个示例代码:

class MyClass:
    def my_method(self):
        print("Hello, world!")
        
# 创建类的实例对象
my_obj = MyClass()

# 调用类中的方法
my_obj.my_method()

输出结果为:

Hello, world!

在上面的示例中,我们首先定义了一个名为MyClass的类,其中包含一个名为my_method的方法。该方法的第一个参数是self,用于表示类的实例对象。在方法内部,我们使用print语句输出了一句问候语。

接下来,我们通过使用MyClass()来创建了一个MyClass类的实例对象,并将其赋值给变量my_obj。然后,我们使用my_obj.my_method()来调用类中的方法。

需要注意的是,当我们调用类的方法时,不需要显式地传递self参数。Python会自动将实例对象传递给方法的self参数。

除了调用类中的方法,我们还可以通过实例对象访问类的属性。属性是类中的变量,可以用于存储和表示对象的状态。下面是一个示例代码:

class MyClass:
    def __init__(self, name):
        self.name = name
        
    def greet(self):
        print(f"Hello, {self.name}!")
        
# 创建类的实例对象
my_obj = MyClass("Alice")

# 访问类的属性
print(my_obj.name)  # 输出:Alice

# 调用类中的方法
my_obj.greet()  # 输出:Hello, Alice!

输出结果为:

Alice
Hello, Alice!

在上面的示例中,我们添加了一个带有参数的特殊方法__init__,用于初始化类的实例对象。在该方法中,我们将参数name赋值给了实例对象的name属性。然后,我们定义了一个名为greet的方法,用于向对象打招呼。在方法内部,我们使用self.name来访问对象的name属性,然后输出问候语。

在创建类的实例对象时,我们传递了一个名为"Alice"的参数。然后,我们使用my_obj.name来获取实例对象的name属性的值,并进行输出。接着,我们调用了my_obj.greet()来调用类中的方法。

通过以上示例,我们可以看到,在Python中,类中含有self的函数是通过创建类的实例对象来调用的。实例对象可以访问类的属性,并调用类中的方法。这种通过实例对象来调用类中的方法的方式,是面向对象编程的基本特性之一。