python定义类代码_python中的类代码是怎样的?

本文介绍了Python中的类定义和对象初始化,包括__init__魔术方法、类方法定义、继承以及如何调用父类方法。通过实例展示了如何创建一个继承自list的类A,并利用super()调用父类方法。同时,讨论了str和list作为内置类,其方法是如何工作的,强调了实例化过程。最后,建议查阅Python官方文档以深入理解内置类的内部实现。
摘要由CSDN通过智能技术生成

在Python中,类一般是由语句 class xxx: 定义。

比如一段最简单的:

class Dog:

def __init__(self, name):

# 用双下划线包围的是python类中的魔术方法,一般都有特殊作用

# 比如init就是初始化类时解释器自动调用的一个方法(在__new__之后)

self.name = name #这里创建了一个Dog类的属性name,其值就是由init传入的name

def who_am_i(self): # 在类中直接用一个缩进+def关键字就可以定义类的方法,实例化后可以直接使用

print(self.name)

color = "white" # 类中也可以直接创建变量

定义时在类名后可以加上小括号(),里面填写创建的类所继承的超类,就可以在创建的类中调用超累的相关方法和属性。

比如说:

class A(list): # 继承list类

def __init__(self, item):

super(A, self).__init__(item) # 用super方法调用list类的init方法,以创建一个列表(就是self参数)

def switch(self):

self.insert(0, self.pop()) # 这里由于继承了list类,可以直接调用它的方法(insert和pop)来对self(列表)进行操作

这段代码中,创建的类A继承了list类,所以可以直接调用其方法。

至于题主提到的str和list,其实它们就是两个内置类,平时我们调用的方法,比如list().append(), str().split(),都是在它们的类体中定义的方法,所谓的转换只是将传入的参数实例化后赋值到变量上。比如说:

a = list((3, 4, 5))

这里是将(3, 4, 5)这个元组但做参数传到list类的__init__方法中,然后再实例化。如果我们看官方list类的__init__方法就可以发现这点

class list(object):

def __init__(self, seq=()): # known special case of list.__init__

"""

list() -> new empty list

list(iterable) -> new list initialized from iterable's items

# (copied from class doc)

"""

pass

由于内设的类好像大部分都是由C编写的,建议直接到官网上看一看list和str类的文档,会对它们的理解有所帮助。https://docs.python.org/3/​docs.python.org

萌新第一次回答问题,希望能帮得上忙~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值