Python Class(类)讲解

Python面向对象编程:理解类与对象,
文章介绍了Python中的面向对象编程概念,强调了分类的重要性。通过示例解释了如何声明和使用类,包括属性和方法的定义,以及通过`__init__`方法进行初始化。文章还展示了如何创建和调用对象的方法。

怎么分类?

假如不分类,世界会怎么样?

假如不分类,世界会变得很乱

垃圾不分类,乱;

书本不分类,乱;

物品不分类,乱,

很乱很乱。

Python是面向对象的编程语言,那么,对象就要分类。

Python的类怎么声明?

(基本的)

class 类名:
    属性名1 = 属性类型基本值1
    属性名2 = 属性类型基本值2
    属性名n = 属性类型基本值n

 注意:

        1.类名和属性名最好不要有中文!数字不能开头!

        2.类名的首字母最好大写

     讲解:

        类名:英文或拼音,比如:Shuiguo

        属性名:属性的名称,比如:Name

        属性类型基本值:不是None,具体看下表:

类型
int(整数)0
float(浮点型“带有小数点的数字”)0.0
str(字符串)''或""
list(列表)[]
tuple(元组)()

怎么引用它?

变量名 = 类名()
变量名.属性 = 属性值
print(变量名.属性)
变量名.方法(方法的参数)

也可以这样(例子):

class Students:  # 定义学生类
    # 初始化属性
    
    def __init__(self, name, age, gender, grand):
        self.name = name
        self.age = age
        self.gender = gender
        self.grand = grand
    # 定义普通(函数)方法
    
    def learn(self):
        print('我经常去图书馆里看课外书。')

    def play(self):
        print('我周末喜欢去公园里和伙伴们在一起玩耍。')

这样引用它:

s = Students('加油', 9, '男', 2)
s.play()
print(s.name)


#---------------------------------------------------------------
#输出:

#我周末喜欢去公园里和伙伴们在一起玩耍。
#加油
Python中,是用于创建对象的蓝图,它将数据(属性)和操作这些数据的方法(函数)封装在一起,是面向对象编程的核心概念之一。 ### 的定义 使用`class`关键字来定义,语法和函数似。名通常遵循首字母大写的命名规范。以下是一个简单的定义示例: ```python class MyClass(): pass print(MyClass) ``` 上述代码定义了一个名为`MyClass`的,`pass`语句表示该暂时没有具体的代码实现。打印`MyClass`会显示它的型信息,输出为`<class '__main__.MyClass'>` [^1]。 ### 的构造方法 中的`__init__()`方法是一个特殊的方法,也称为构造方法,用于在创建的实例时进行初始化操作。`self`关键字是一个约定俗成的参数名,它代表的实例对象本身,在实例方法中使用时,用来传递实例对象,实际上是实例在内存中的一个地址,并且是隐形传递的。实例可以调用的属性,必须在`__init__()`里面定义并且初始化。以下是一个包含构造方法的的示例: ```python class Box: def __init__(self, chang, kuan, gao): self.chang = chang self.kuan = kuan self.gao = gao def say(self): return self.chang * self.kuan * self.gao if '__main__' == __name__: a = Box(1, 2, 3) print(a.say()) ``` 在这个例子中,`Box`有一个构造方法`__init__()`,用于初始化盒子的长、宽、高。`say()`方法用于计算盒子的体积。创建`Box`的实例`a`时,传入长、宽、高的值,然后调用`say()`方法计算并打印出体积 [^3]。 ### 数据(dataclass) 传统的定义虽然功能强大,但为了定义一个简单的数据结构,开发者经常需要手动编写`__init__`、`__repr__`、`__eq__`等重复性代码。这种编写方式不仅费时费力,还增加了出错的几率。为了简化这一过程,Python 3.7引入了数据(dataclass),它能够自动生成必要的方法,避免手动编写重复代码,从而使定义更简洁高效 [^2]。 ### 的复杂应用 当一个很复杂的时候,可以考虑使用多个进行组合。例如,下面的代码中,`Box`使用了`Color1`来设置盒子的颜色: ```python class Color1: def __init__(self, index=0): self.set_color = ["bai", "hei"] self.index = index def setColor(self): return self.set_color[self.index] class Box: def __init__(self, chang, kuan, gao, c1=0): self.chang = chang self.kuan = kuan self.gao = gao self.color0 = Color1(c1).setColor() def say(self): return self.chang * self.kuan * self.gao if '__main__' == __name__: a = Box(1, 2, 3, 1) print(a.say()) print(a.color0) ``` 在这个例子中,`Box`的实例`a`在创建时,通过`Color1`设置了颜色,并且可以调用`say()`方法计算体积 [^3]。
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值