一、定义
1)是一个独立存放变量(属性/方法)的空间
2)例如:class Pare:
name = ‘不错’ 类属性
print(Pare.name) 访问属性是类名+.+类属性名
类里面叫定义 外面叫添加
实例化
a = Pare() a是实例化的对象
在外面添加的叫实例属性
class Cat:
"""这是一个猫类"""
# class 关键字
# Cat 类名 大驼峰命名法
# """这是一个猫类""" 解释类的用途
class Cat:
"""这是一个猫类"""
pass
kitty = Cat()
# 句点法给实例赋值属性
kitty.color = 'white'
kitty.eat = 'milk'
print(kitty)
print(kitty.color) # kitty.color:找到kitty所应用的对象,并获取color属性值
orange = Cat()
# __ __
# __init__, 实例化之后自动被调用,完成实例的初始化
二、属性
1)init__初始化
2)在python中有两私有属性,分别是在属性前加 一个下换线(_) 和 两个下划线()
3)私有属性:在 Python 中, _ 和 __ 的使用 更多的是一种规范/约定,没有真正限制的目的定义在类中的私有属性也可以被子类继承
# 类属性:记录与类相关的特征
# 在__init__外初始化的
class Cat:
"""这是一个猫类"""
count = 0 # 类属性
def __init__(self, color, eat):
self.color = color # 实例属性:记录是具体对象的特征
self.eat = eat
# 计数
Cat.count += 1 # 内部调用:类名.类属性名
# 实例化对象
kitty = Cat('white', 'milk')
orange = Cat('orange', 'food')
hua = Cat('hua', 'fish')
# 输出创建对象的个数
print("现在创建了{}只猫".format(Cat.count)) # 外部调用:类名.类属性名
print(kitty.count) # 外部调用:实例名.类属性名
# 总结
"""
实例可以访问实例属性,实例可以访问类属性
类只能访问类属性
"""
# 3.私有属性
# a.单下划线开头:只是告诉别人这是私有属性,外部依然可以访问更改
# b.双下划线开头:外部不能通过实例名(instancename).属性名(propetyname)来访问或者更改强制私有属性
class Cat:
def __init__(self, color, eat):
self._color = color
self.__eat = eat
kitty = Cat('white', 'milk')
print(kitty._color)
# print(kitty.__eat)