python创建类和对象及使用_Python入门丨类与对象①

类是一个函数包

类中可以放置函数和变量,然后类中的函数可以很方便的使用类中的变量。

类中可以放置函数和变量

就像def语句自定义一个函数,class语句自定义一个类

# 语法:创建一个名为'ClassName'的类,类名一般首字母要大写

class ClassName():

# 规范:class语句后续的代码块要缩进

def function1():

# 定义类中的函数

既然说类是一个函数包,所以一个类中可以放置一堆函数

实例(后续的例子会使用中文取名方便理解)

class 类A():

def 函数1():

print('类A的第一个方法!')

def 函数2():

print('类A的第二个方法!')

def 函数3():

print('类A的第三个方法!')

类A.函数1()

类A.函数2()

输出结果

类A的第一个方法!

类A的第二个方法!

注:在类中被定义的函数被称为类的方法,使用类名.函数名()格式,让类的方法运行。

类中也可以放置一堆变量

实例

class 类A():

变量1 = 100

变量2 = -5.83

变量3 = 'abc'

print(类A.变量1)

print(类A.变量2)

print(类A.变量3)

输出结果

100

-5.83

abc

类中的属性(变量)可以使用类名.变量名的格式,增加或修改类的属性

实例

class 类A():

变量1 = 100

变量2 = -5.83

变量3 = 'abc'

print(类A.变量1)

print(类A.变量2)

print(类A.变量3)

类A.变量1 = 99

类A.变量4 = '新增一个变量'

print(类A.变量1)

print(类A.变量4)

输出结果

99

新增一个变量

既有方法又有属性的类

实例

class 智能机器人():

# 类属性

胸围 = 33

腰围 = 44

臀围 = 55

# 类方法

def 打招呼():

print('主人你好!')

def 卖萌():

print('主人,求抱抱!')

def 生气():

print('主人,我要报警啦!')

print(智能机器人.胸围)

print(智能机器人.腰围)

智能机器人.打招呼()

智能机器人.卖萌()

输出结果

33

44

主人你好!

主人,求抱抱!

类方法和类属性可以组合

类中的函数可以利用类中的变量(类方法可以调用类属性)

类中的变量传递给类中的函数,3个特定格式:

①第一个格式@classmethod的中文意思就是类方法,@classmethod声明了函数1是类方法,这样才能允许函数1使用类属性中的数据

②第二个格式cls的意思是class的缩写。如果类方法函数1想使用类属性,就要写上cls为函数1的第一个参数,也就是把这个类作为参数传给自己,这样就能被允许使用类中的数据。

③第三个格式是cls.变量。类方法想使用类属性的时候,需要再这些变量名称前加上cls.。

正确案例

class 类A():

变量1 = 100

变量2 = 200

def 函数1(): # 不需要使用类属性

print('不需要使用类属性。')

@classmethod

def 函数2(cls): # 需要使用类属性

print(cls.变量1)

print(cls.变量2)

类A.函数1()

类A.函数2()

输出结果

不需要使用类属性。

100

200

注:@classmethod、cls、cls.三处格式缺一不可

添加自报三围的类方法

给类方法传参

给函数传递参数被函数内部使用

实例

def add_100(num):

sum = num + 100

print('计算结果如下:')

print(sum)

num = 1

add_100(num)

输出结果

计算结果如下:

101

将函数改造成类中的方法

class 加100类():

def 加100函数(参数):

总和 = 参数 + 100

print('计算结果如下:')

print(总和)

参数 = 1

加100类.加100函数(参数)

输出结果

计算结果如下:

101

注:使用了外部的参数,不需要加上@classmethod格式

类方法仅使用内部参数

实例

class 智能机器人():

胸围 = 33

腰围 = 44

臀围 = 55

@classmethod

def 自报三围(cls):

print('胸围:{}'.format(str(cls.胸围)))

print('腰围:{}'.format(str(cls.腰围)))

print('臀围:{}'.format(str(cls.臀围)))

智能机器人.自报三围()

输出结果

胸围:33

腰围:44

臀围:55

类方法同时使用内部参数和外部参数

实例

class 加100类():

变量 = 100

@classmethod

def 加100函数(cls, 参数):

总和 = cls.变量 + 参数

print('加100函数计算结果:{}'.fromat(总和))

参数 = int(input('请输入一个整数:'))

加100类.加100函数(参数)

输出结果

请输入一个整数:1 # 1为终端人工输入

加100函数计算结果:101

注:当类方法使用多个外部参数时,要多预设几个参数位置加100函数(cls, 参数1, 参数2, 参数3)

作者:one

来源:公众号One丨Python

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值