python中的类(详细基础理解版)

Python 类/对象

Python 是一种面向对象的编程语言。

Python 中的几乎所有东西都是对象,拥有属性和方法。

类(Class)类似对象构造函数,或者是用于创建对象的“蓝图”。

创建类

关键字:class

下面通过创建名字为Dog的类举例:

class Dog:
    name='汤圆'
dog_1=Dog()
print(dog_1.name) #汤圆
dog_1.name='饺子'
print(dog_1.name) #饺子

这里面,Dog为类名称,name为类变量。

__init__() 函数

上面的例子是最简单形式的类和对象,在实际应用程序中并不真正有用。

要理解类的含义,我们必须先了解内置的 __init__() 函数。

所有类都有一个名为 __init__() 的函数,它始终在启动类时执行。

使用 __init__() 函数将值赋给对象属性,或者在创建对象时需要执行的其他操作:

class Dog:
    def __init__(self,name,age):
        self.name= name
        self.age= age
    def greet(self):
        print("hi,my name is "+self.name)

dog_1=Dog('汤圆',1)
print(dog_1.name) #汤圆
dog_1.greet() #hi,my name is 汤圆

init本身含义是初始化,即将名为Dog的类初始化数据,并且在后面创建变量的时候将分别填充属性数据,把其作为__init__(self,name,age)的实参。比如该例子中,狗都有名字和年龄,在创建每个狗的实例时,都应该创建各自的名称和年龄作为实参,因此录入该狗狗的时候就应该把其填入:

dog_1=Dog('汤圆',1)

class Dog:
    def __init__(self,name,age):
        self.name= '小狗'
    def greet(self):
        print("hi,my name is "+self.name)

dog_1=Dog('汤圆',1)
print(dog_1.name) #小狗
dog_1.greet() #hi,my name is 小狗

若将name 和age 改成其他,我们发现无论后面怎么改,名字始终不改变。

原因是在构造函数中,我为 self.name 赋了一个固定的值 '小狗',而不是使用通过参数传递进来的 name 值。这导致了无论我创建 Dog 类的实例时传入什么名字,实例的 name 属性总是被设置为 '小狗'

self 参数

self 参数是对类的当前实例的引用,用于访问属于该类的变量。

它不必被命名为 self,可以随意调用它,但它必须是类中任意函数的首个参数,例子如上

但我们可以简单理解一下这个参数,self和对象指向同一个内存地址,self就是对象的引用,

即哪个变量调用,就用该变量给的值,其实例子在第一个实例中已经体现:

class Dog:
    name='汤圆'
dog_1=Dog()
print(dog_1.name) #汤圆
dog_1.name='饺子'
print(dog_1.name) #饺子

在这里面,我们可以看到。dog_1是那个变量,通过dog_1改变小狗名称,后来通过输出函数发现更改成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

z_e_r_o___

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值