您的位置:首页 > 编程语言 > Python开发

python中类的的用法(基本概念与基本用法)

2018-01-31 20:46 686 查看
python是面向对象的编程语言,面向对象特点:继承、封装、多态

面向对象编程:和面向过程一样,是一种编程思想

类的概念:具有相同的的属性和行为特点的事物的抽象的集合

                比如:人类的属性:身高  年龄  性别  姓名

                           人类的行为:吃喝拉撒睡

对象的概念:类的具体的实例化

                      人类中的对象:张三、李四.......

类的作用:创建对象,一般会在类中定义一些函数和属性,当使用类创建对象的时候,该对象就会拥有类中定义的这些属性和函数

类中的一些属性和函数,是由所有的对象身上共同的属性和行为抽离出来的
对象的作用:实现函数和属性的调用执行者

在python中声明一个类:

#class 班级群体
#object :继承的父类     object是基类、顶级父类
class Pople(object):
#pass 保证语法的完整性
# pass
#人出生的时候,已经具有性别、年龄、身高、体重
#初始化函数 在创建对象的时候自动调用
#__init__ 内置函数
def __init__(self,name,age,phone):
#在初始化函数中需要将创建对象时就该拥有的一些属性赋值
#对象.属性名=属性值
self.name=name
self.age=age
self.phone=phone

使用people类创建一个对象:

#创建对象的基本格式:对象名=类名()
#当创建一个对象时,会在内存中开辟一块空间,来存放这个对象,这个对象是有一个地址的
#每次创建的对象都是一个单独个体,他们的内存地址都是不一样的
#p1是指针,存放对应对象的地址,就如:张三这个人,人本身是对象,而名字就如指针
p1=Pople('张三',22,110)
print(p1)
#输出结果: <__main__.Pople object at 0x000000000107B198>
#当前文件中的People类的对象p1的内存地址为0x000000000107B198
#内存:程序运行时,在计算中占用的空间
#电脑上的500GB 1TB这种是硬盘空间
#python中是自动管理内存的

获取对象的属性值

使用常规方法:

#格式:对象.属性名
#如果属性值不存在,抛出异常
name=p1.name
print(name)
age=p1.age
print(age)
print(p1.phone)

使用getattr函数:


#使用getattr(object,name,default)函数,会把获取到的值返回
#object:要获取属性的对象  name:要获取的属性名  default:当属性不存在,赋一个默认值
#如果属性不存在,可以给一个默认值,这样不会让程序出现异常
age=getattr(p3,'age',30)
print(age)

修改对象的属性值  (修改的属性存在则是修改,否则是为对象增添这个属性)

常规修改方法:

#对象.属性名=属性值
p1.name='李四'
print(p1.name)

#可以给对象添加新的属性
#对象.属性名=属性值  如果这个属性不存在,就是添加这个属性
p1.sex='男'
print(p1.sex)

用python中的函数来设置对象属性值:

#setattr(o,name,value)1.设置属性值的对象 2.要设置对象的属性名 3.要设置的属性值
setattr(p1,'age',21)
print(p1.age)

删除对象的属性

常规删除方法:

#对象的属性被删除之后,就不能再使用了
#AttributeError:ssss  要删除的对象不存在
del p1.sex
# print(p1.sex)

用python中的函数删除:

#要删除对象属性的函数
#1.要删除的对象 2.要删除的属性名
delattr(p1,'phone')
#删除之后,就不能再用这个属性了
# print(p1.phone)

具体实例说明setattr函数的作用:

#setattr 动态添加属性或者修改属性值
attr_dict={'iq':'150','eq':'150','color':'yellow'}
#for循环遍历字典
for key,value in attr_dict.items():
#key是属性名 value是属性值
#setattr 可以将一个字符串的属性名 添加到对象的属性中
#p1.key=value 这种方式无法添加 相当于写了 p1.'iq'='150'
setattr(p1,key,value)
print(p1.iq)
print(p1.color)

具体实例说明delattr函数的作用:

#delattr 动态删除属性
#删除对象p1中的属性
attr_list=['iq','eq','color']
for attr in attr_list:
#可以使用delattr函数删除
delattr(p1,attr)
#对象的属性删除之后,就不能不用了
# print(p1.color)

hasattr() 判断某个对象是否拥有某个属性

#判断会返回结果  如果有这个属性返回True,没有返回False
s=hasattr(p3,'ssss')
print(s)

#先判断是否有这个属性,再执行获取属性的操作
if hasattr(p3,'ssss'):
s=p3.ssss
else:
print('p3没有ssss这个属性')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python class