Python中的类

俗话说,物以类聚,人以群分,类是什么,类就是一组相同属性的集合。下面来结合人,探讨Python中类和人类的关系。

首先,我们定义一个人的类,如下:

class People(object):'''创建人类'''def __init__(self,name,age,sex,blood_type):"""人具有姓名,年龄,性别,血型的属性"""self.name=name

self.age=age

self.sex=sex

self.blood_type=blood_type

def walk(self):'''创建走路方法'''print("%s can walk!!!!" %self.name)

def speak(self):"""创建说话的属性"""print("%s can speak!!" %self.name)

def learn(self):'''创建学习的属性'''print("%s is learning." %self.name)

p1= People("wupeiqi",18,"女","0")

p2= People("Alex",8,"男","AB")

上面代码中,我们定义了一个人的类,人都有姓名,年龄,性别,血型等属性,还有说话,学习,走路等方法;并且我们创建了两个人,一男一女,"Wupeiqi"和"Alex",下面我们来一步一步完善这两个人。

我们知道,男人有喉结,女人会生小孩,这两个是男,女的区别,也是各自独有的属性。那么给"wupeiqi"和"Alex"添加这种属性。如下:

class People(object):'''创建人类'''def __init__(self,name,age,sex,blood_type):"""人具有姓名,年龄,性别,血型的属性"""self.name=name

self.age=age

self.sex=sex

self.blood_type=blood_type

def walk(self):'''创建走路方法'''print("%s can walk!!!!" %self.name)

def speak(self):"""创建说话的属性"""print("%s can speak!!" %self.name)

def learn(self):'''创建学习的属性'''print("%s is learning." %self.name)

p1= People("wupeiqi",18,"女","0")

p2= People("Alex",8,"男","AB")

p1.birth= "Woman can give birth to a baby"#给女人添加生孩子功能

p2.adam= "Man has Adam's apple" #给男人添加喉结属性

我们知道,男人和女人都有学习的功能,我们人类自己有人会说英语,有人会说日语,总之各种各样的语言,这些是个体所具有的属性,比如"wupeiqi"会说日语,"Alex"会说英语,我们来实现一下:

class People(object):'''创建人类'''def __init__(self,name,age,sex,blood_type):"""人具有姓名,年龄,性别,血型的属性"""self.name=name

self.age=age

self.sex=sex

self.blood_type=blood_type

def walk(self):'''创建走路方法'''print("%s can walk!!!!" %self.name)

def speak(self):"""创建说话的属性"""print("%s can speak!!" %self.name)

def learn(self):'''创建学习的属性'''print("%s is learning." %self.name)

p1= People("wupeiqi",18,"女","0")

p2= People("Alex",8,"男","AB")

p1.birth= "Woman can give birth to a baby"#给女人添加生孩子功能

p2.adam= "Man has Adam's apple"#给男人添加喉结属性

p1.language1= "Japanese"p2.language2= "English"print("{0} is can speak {1}".format(p1.name,p1.language1)) #打印wupeiqi说的语言

print("{0} is can speak {1}".format(p2.name,p2.language2)) #打印ALex说的语言

print("%s is can speak %s" %(p1.name,p1.language2)) #看wupeiqi是否会说英语

print("%s is can speak %s" %(p2.name,p2.language1)) #查看Alex是否会说日语 主要是看语言能力能否交叉

运行结果如下:

wupeiqi is can speak Japanese

Alex is can speak English

Traceback (most recent call last):

File "/home/zhuzhu/第七天/人类.py", line 33, in

print("%s is can speak %s" %(p1.name,p1.language2))          #看wupeiqi是否会说英语

AttributeError: 'People' object has no attribute 'language2'

从上面代码可以看出,"wupeiqi"会说日语,但是"Alex"不具有"wupeiqi"的能力。这就像我们人类一样,你具备的能力,别人是不一定具备的,别人具备的能力,你也是不一定有的。类就像人类世界一样。我们可以创建属性,不一样的能力,共有的能力。再比如,我们知道,我们都会说话,但是有些人生病了,或者天生有缺陷,不具备这种能力,我们可以拿走这些能力,如下:

class People(object):'''创建人类'''def __init__(self,name,age,sex,blood_type):"""人具有姓名,年龄,性别,血型的属性"""self.name=name

self.age=age

self.sex=sex

self.blood_type=blood_type

def walk(self):'''创建走路方法'''print("%s can walk!!!!" %self.name)

def speak(self):"""创建说话的属性"""print("%s can speak!!" %self.name)

def learn(self):'''创建学习的属性'''print("%s is learning." %self.name)

p1= People("wupeiqi",18,"女","0")

p2= People("Alex",8,"男","AB")

p1.walk()

p2.walk()

运行如下:

wupeiqi can walk!!!!

Alex can walk!!!!

上面代码中,我们可以看出,本来Alex和wupeiqi都会跑,现在突然出现一点小情况,Alex不会跑了(当然这只是假设),如下:

class People(object):'''创建人类'''def __init__(self,name,age,sex,blood_type):"""人具有姓名,年龄,性别,血型的属性"""self.name=name

self.age=age

self.sex=sex

self.blood_type=blood_type

def walk(self):'''创建走路方法'''print("%s can walk!!!!" %self.name)

def speak(self):"""创建说话的属性"""print("%s can speak!!" %self.name)

def learn(self):'''创建学习的属性'''print("%s is learning." %self.name)

p1= People("wupeiqi",18,"女","0")

p2= People("Alex",8,"男","AB")

print(People.walk," ",p1.walk)

p1.walk()

p2.walk()

del People.walk

#try:

# delattr(p2,"walk")

# except AttributeError:

# print("方法不能删除吗!!!!?")

p1.walk()

p2.walk()

运行结果如下:

wupeiqi can walk!!!!

Alex can walk!!!!

Traceback (most recent call last):

File "/home/zhuzhu/第七天/人类.py", line 37, in

p1.walk()

AttributeError: 'People' object has no attribute 'walk'

从上面代码可以看出,创建的实例是不能删除类中的方法的,类中的方法不支持删除,下面来看看对类中的属性进行操作:

我们让"wupeiqi"成为无名氏,如下:

class People(object):'''创建人类'''def __init__(self,name,age,sex,blood_type):"""人具有姓名,年龄,性别,血型的属性"""self.name=name

self.age=age

self.sex=sex

self.blood_type=blood_type

def walk(self):'''创建走路方法'''print("%s can walk!!!!" %self.name)

def speak(self):"""创建说话的属性"""print("%s can speak!!" %self.name)

def learn(self):'''创建学习的属性'''print("%s is learning." %self.name)

p1= People("wupeiqi",18,"女","0")

p2= People("Alex",8,"男","AB")

print(p1.name,p2.name)

del p1.name

print(p1.name,p2.name)

运行结果如下:

wupeiqi Alex

Traceback (most recent call last):

File "/home/zhuzhu/第七天/人类.py", line 29, in

print(p1.name,p2.name)

AttributeError: 'People' object has no attribute 'name'

从上面运行结果可以看出,我们删除了类中的属性,即属性是可以修改和删除的,我们让"wupeiqi"成为了无名氏,不在具有名字了。

从上面可以看出,类中,我们只能修改和删除类的属性,不能删除类的方法。

类和人类是一样的,都是封装一个大致的属性,可以创建无数个个体,每个个体都有自己独特的属性,我们可以通过添加属性进行添加,也会有很多不同的技能和方法。我们都能够实现类中个体实例的完善。

就如我们人类自己一样,我们缺少某个属性,我们可以通过自己的努力去获取。

类就是对现实生活世界的描述。

class People(object):'''创建人类'''def __init__(self,name,age,sex,blood_type):"""人具有姓名,年龄,性别,血型的属性"""self.name=name

self.age=age

self.sex=sex

self.blood_type=blood_type

def write(self,write_abality=False):'''创建写作的能力,不是每个人都具有写作的功能,所以需要进行判断'''

if write_abality ==False:

print("Sorry,%s is a illiteracy,so %s cann't have the ability of writing!" %(self.name,self.name))

elif write_abality==True:

print("%s is a professional in an and literature,%s can write!" %(self.name,self.name))else:

print("Sorry,cann't identify the parameter of %s." %write_abality)

def walk(self):

print("%s can walking!")

p1= People("Alex",18,"Female","AB")

p1.write("Alex")

我们知道,有些人会写,有些人不会写,所以我们要进行判断,判断这个人是否具有写这个属性,如果有,就能够写;如果没有,就不具备。因而要加上一个判断。这样就能查看是否具有写的功能。

现实世界很多东西需要我们去学习,现在对类的掌握还不是很彻底,尤其是不知道如何描述现实世界,这个还需要自己去积累。

python定义一个人类_Python类和人类相关推荐

  1. python定义一个字符串_Python基础之字符串

    初识字符串 字符串的认识 首先,我们先认识下什么是字符串:# 定义字符串 t_str1 = "Hello World" t_str2 = "asdfghh" p ...

  2. python定义一个数组_Python数组定义方法

    本文实例讲述了Python数组定义方法.分享给大家供大家参考,具体如下: Python中没有数组的数据结构,但列表很像数组,如: a=[0,1,2] 这时:a[0]=0, a[1]=1, a[[2]= ...

  3. python定义一个变量_Python新手上车3:Python第一个程序和变量

    第一个程序 上节内容我们提到了如何安装Python 以及安装配置VSCode,这节内容我们继续介绍第一个程序的建立: 1.在VS的左上角点击建立一个新的程序,命名为 python_0301_code. ...

  4. python类定义的讲解_python类定义的讲解

    Python中的类属性和对象属性的区别详解 类属性: class Employee(object): emCount=0 def __init__(self,name,salary): self.na ...

  5. 首先定义一个Point (点)类,包含属性x,y(x,y为坐标点),方法有setPoint、getX、getY和OprintInfo...python编程题练习

    复习python编程题集合的第五题,若有错误和改进意见,欢迎评论交流!            首先定义一个Point (点)类:                   (1)包含属性x,y(x,y为坐标 ...

  6. python定义一个空数组_python数组 1_python 数组最后一个元素_python定义一个空数组 - 云+社区 - 腾讯云...

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 感悟: 1.python列表操作里不允许变量类型的指针2.case1类似于冒泡排 ...

  7. python 定义函数方法_Python定义一个函数的方法

    Python函数的定义 定义函数,也就是创建一个函数,可以理解为创建一个具有某些用途的工具.定义函数需要用 def 关键字实现,具体的语法格式如下: def 函数名(形参列表): //由零条到多条可执 ...

  8. python定义字符串数组_python数组声明

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 如何在python? 我无法在文档中找到对数组的任何引用... 我正在制作一个小 ...

  9. python声明一个数组_python 声明数组

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 如何在python? 我无法在文档中找到对数组的任何引用... 我正在制作一个小 ...

最新文章

  1. python入门代码示例-Python入门简单的静态网页爬虫3.0 (爬虫的示例代码)
  2. JMeter 下载安装教程
  3. 对easyUI中课堂源码编辑改进建议
  4. Android官方开发文档Training系列课程中文版:电池续航时间优化之按需开启广播接收器
  5. B端产品经理如何更好的了解需求?
  6. JeecgBoot低代码平台 2.4.5 版本发布,钉钉与企业微信集成版本
  7. UITableView单元格选择颜色?
  8. 使用 Pig 进行数据分析
  9. poj 匈牙利二分匹配 模板 poj题目
  10. mixin风格的bases class
  11. docker运维工具
  12. 【Excel】【行列转换:转置粘贴 or TRANSPOSE】
  13. 152、全面图解交换机接口及连接
  14. 学习笔记(32):Google开发专家带你学 AI:入门到实战(Keras/Tensorflow)(附源码)-模型微调(青出于蓝胜于蓝)...
  15. WPS制作的电子签名有法律效力吗
  16. 打开我的电脑显示计算机管理 不显示磁盘,win10打开此电脑不显示磁盘盘符的解决方法?...
  17. vue 微信录音倒计时_vue的微信语音功能,录音+对接口返回amr音频播放-Go语言中文社区...
  18. Excel技巧【标记多行数据连续一样的行】【第一个单元格公式适用于所有本列所有行】【按照逗号分列】【快速统计出各个项出现的次数】【冻结窗口】[表格分段选择数据][根据单元格内容引索其他单元格数据指针]
  19. C# MQTT(MQTTnet)客户端
  20. wf 《计算机专业英语》,武汉4-5岁MFWF轻松自信说英语课程

热门文章

  1. c站官网(c站官网客户端下载苹果)
  2. PCB中邮票孔的用处以及常用设置
  3. 液金显示器台式计算机耗电量,记笔记本CPU开盖换液金经过
  4. 来局昆特牌吗?(模拟+策略优化)
  5. 咋样回复计算机桌面删除的东西,电脑桌面上的便签怎么删除及桌面便签删除后还能恢复吗...
  6. 13.歌手大赛计分程序。
  7. linux智能电压表设计与实现,智能电压表的设计
  8. 缓存Cache-Control
  9. STM32+ESP8266+MQTT连接阿里云服务器(一、烧写MQTT固件)
  10. 广达做微软服务器,微软联手广达布局云计算 称策略是软件加服务