python 类内置函数

Python类内置函数是指在Python类中预定义的一些特殊方法,这些方法在特定的情况下会被自动调用,通过使用这些内置函数,我们可以实现一些常见的编程任务,如初始化对象、访问属性、迭代等。

python 类内置函数
(图片来源网络,侵删)

下面是一些常用的Python类内置函数及其用法:

1、__init__(self, ...): 构造函数,用于初始化对象,当创建类的实例时,会自动调用该方法。self参数表示实例本身,其他参数可以自定义。

class MyClass:
    def __init__(self, name, age):
        self.name = name
        self.age = age
person = MyClass("Alice", 25)
print(person.name)  # 输出: Alice
print(person.age)   # 输出: 25

2、__str__(self): 返回对象的字符串表示形式,当我们使用print()函数打印对象时,会自动调用该方法。

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def __str__(self):
        return f"Person(name={self.name}, age={self.age})"
person = Person("Bob", 30)
print(person)  # 输出: Person(name=Bob, age=30)

3、__getitem__(self, key): 用于获取对象的元素,当使用下标操作符[]访问对象的元素时,会自动调用该方法。

class MyList:
    def __init__(self, data):
        self.data = data
    def __getitem__(self, index):
        return self.data[index]
my_list = MyList([1, 2, 3, 4])
print(my_list[2])  # 输出: 3

4、__setitem__(self, key, value): 用于设置对象的元素,当使用下标操作符[]设置对象的元素时,会自动调用该方法。

class MyDict:
    def __init__(self):
        self.data = {}
    def __setitem__(self, key, value):
        self.data[key] = value
    def __getitem__(self, key):
        return self.data[key]
my_dict = MyDict()
my_dict["name"] = "Alice"
print(my_dict["name"])  # 输出: Alice

5、__iter__(self): 返回一个迭代器对象,用于遍历对象的元素,当使用for循环遍历对象时,会自动调用该方法。

class MyRange:
    def __init__(self, start, end):
        self.start = start
        self.end = end
    def __iter__(self):
        self.current = self.start
        return self
    def __next__(self):
        if self.current < self.end:
            result = self.current
            self.current += 1
            return result
        else:
            raise StopIteration
my_range = MyRange(0, 5)
for i in my_range:
    print(i)  # 输出: 0 1 2 3 4

通过学习和掌握这些Python类内置函数,我们可以更好地理解和使用Python类,实现更复杂的编程任务,在实际开发中,我们还可以自定义更多的内置函数,以满足特定的需求。

原创文章,作者:酷盾叔,如若转载,请注明出处:https://www.kdun.com/ask/302669.html

(0)
酷盾叔的头像酷盾叔订阅
上一篇 2024-03-03 22:13
下一篇 2024-03-03 22:14

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入