Python初学者笔记(七):白话讲“类”,你看不懂算我笨!

Python中“类”有什么用?为什么要使用类?编程语言和人类的自然语言一样,就是通过最简单最高效的语言告诉电脑,它要做什么。

换句话说,你是上帝,你在用编程语言从无到有,创造一个世界。我们肯定是一类一类的创造,应该有人类,鸟类,鱼类吧?而不能一个一个的创造。

人类,鸟类,鱼类这些都是“类”。现在先创造人类吧?这个我比较熟悉。那啥样的是人类呢?至少人类应该有头、四肢、身高、会说话、会数学吧?那刚才说的那些东西,能分成两类,一是人类的属性,比如身高,另外一个就是人类应该有什么功能(即方法),比如会说话,会数学。

那么 类(Class)定义:用来描述具有相同的属性和方法的类型集合,它定义了这类东西所共有的属性和功能(即方法)。

我们现在来用Python的语言,来描述一个类,人类,大概有三部分,基本信息(构造方法,初始化方法),会说话,会加法。当然,这个不能完美描述人类了,不过也大概差不多了。

代码如下:

class Person(object):
    class_name = "人类"

    def __init__(self, name, birth):
        self.name = name
        self.birth = birth
        self.height = 170
        self.legs = 2

    def say(self):
        print("我的姓名:", self.name)
        print("我出生于:", self.birth)

    def jiafa(self, x, y):
        return x + y
第一行,这是Python3的固定语法。当然Person是我们自己命名的类名称,通常建议第一个字母大写。(object)也是固定语法。
第二行,class_name变量是一个类变量,它的值将在这个类的所有实例之间共享。可以在类内部或外部使用zhangsan.class_name访问。
接下来,第一个def,被称为类的“构造函数”或“初始化方法”,其实就是这个类的基本信息,当创建了这个类的“实例”,就可以调用这些基本信息。__init__也是固定格式。在这里有三个参数self, name, birth,对应“自己,姓名,生日”,其实你都可以自己喜欢的名字,当然第一个self也是大家约定俗成的,这里的self是指“自己”,是指“实例化”以后的那个人的“自己”。

什么叫实例化?就是别人听不懂的时候,举个例子。比如什么是人类?张三就是人类(之一)。举例子这个过程叫“实例化”,“张三”就是实例。然后接下来,就可以拿张三说事儿了,这时候,张三就是我们谈话的“对象”,定义一下, 对象就是类的具体实例。

第二个def,就是自我介绍,说自己的名字,这名字和生日从哪来的?从基本信息的构造函数来的。

第三个def,就是会加法,给两个数字,能算出和来,厉害不?

接下来,我们就可以让张三出场了。

print(Person.class_name) # 看看Person类的名称,当然这个是我们指定的。
zhangsan = Person("张三", "1980-01-11") # 实例化张三,张三就是人类,有姓名,有生日。
print(zhangsan.class_name) # 现在张三也有了人类的class_name属性了,没错,张三是人类。
zhangsan.say() # 调用张三会说话的功能,这个时候张三就开始说自己(self)的姓名和生日了。
zhangsan.height = 175  # 如果不写入新值,会调用默认值,基本上一人多高。
print("我的身高:", zhangsan.height) # 新值或者是默认值,看有没有赋值过,比如上一句。
print("我会加法:",zhangsan.jiafa(5,7)) #张三的加法功能
if zhangsan.legs == 2: # 判断一下张三几条腿,当然,这是想说zhangsan.legs属性是可以应用的。
    print(zhangsan.name,"是人类")

运行结果:

人类
人类
我的姓名: 张三
我出生于: 1980-01-11
我的身高: 175
我会加法: 12
张三 是人类
看到这里,感觉“类”还是挺简单的吧,先了解这些,再看其它的父类,子类,继承什么的就容易多了。
  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值