python 类class

python 类 class

一、类的定义与实例化对象

# 例如
class Cat:
    """这是一个猫类"""


# class为关键字
# Cat为类名,使用大驼峰命名法
# """这是一个猫类""",解释类的用途
a = Cat()  # 类的实例化对象

二、类的属性

1、实例属性

# 例如
# "__init__"初始化方法,在类实例化后自动调用,完成实例初始化
class Cat:
    """这是一个猫类"""
    def __init__(self, name, age):
        self.name = name  # 实例属性
        self.age = age
        print("{}今年{}岁".format(self.name, self.age))
        # 实例属性内部调用:self.属性名


lulu = Cat("lulu", 2)  # 实例化对象
# 运行结果为:lulu今年2岁
print(lulu.age)  # 外部调用实例属性:实例名.属性名
# 运行结果为:2

2、类属性


# 例如
# "__init__"初始化方法,在类实例化后自动调用,完成实例初始化
class Cat:
    """这是一个猫类"""
    count = 0  # 类属性

    def __init__(self, name, age):
        self.name = name  # 实例属性
        self.age = age
        Cat.count += 1
        print("{}今年{}岁".format(self.name, self.age))
        # 实例属性内部调用:self.属性名
        print("实例了{}只猫".format(Cat.count))
        # 类属性内部调用:类名.属性名


lulu = Cat("lulu", 2)  # 实例化对象
nana = Cat("nana", 1)
lili = Cat("lili", 0.5)
print("实例个数:{}".format(Cat.count))
# 类属性外部调用:类名.属性名

运行结果为
在这里插入图片描述

3、私有属性

# 例如
# "__init__"初始化方法,在类实例化后自动调用,完成实例初始化
class Cat:
    """这是一个猫类"""
    count = 0  # 类属性

    def __init__(self, name, age, color):
        self.name = name  # 实例属性
        self._age = age  # 私有属性,外部可访问、可更改
        self.__color = color  # 私有属性,外部不可访问、不可更改
        Cat.count += 1
        print("{}今年{}岁".format(self.name, self._age))
        # 实例属性内部调用:self.属性名
        print("{}的颜色为:{}".format(self.name, self.__color))
        print("实例了{}只猫".format(Cat.count))
        # 类属性内部调用:类名.属性名


lulu = Cat("lulu", 2, "white")  # 实例化对象
print("="*30)
nana = Cat("nana", 1, "black")
print("="*30)
lili = Cat("lili", 0.5, "gray")
print("="*30)
print("实例个数:{}".format(Cat.count))
# 类属性外部调用:类名.属性名
print("{}的年龄为{}".format(lulu.name, lulu._age))
# 外部访问单下划线私有属性

运行结果为
在这里插入图片描述

4、总结

1、实例可以访问实例属性,也可以访问类属性
2、类只能访问类属性
3、以单下划线开头的私有属性:只是为了告诉别人,这是私有属性,外部可访问、可更改。
4、以双下划线开头的私有属性:外部不可访问、不可更改。

三、类方法

# 例如
# "__init__"初始化方法,在类实例化后自动调用,完成实例初始化
class Cat:
    """这是一个猫类"""
    count = 0  # 类属性

    def __init__(self, name, age, color):
        self.name = name  # 实例属性
        self._age = age  # 私有属性,外部可访问、可更改
        self.__color = color  # 私有属性,外部不可访问、不可更改
        Cat.count += 1

    def print_cat(self):
        print("{}今年{}岁".format(self.name, self._age))
        # 实例属性内部调用:self.属性名
        print("{}的颜色为:{}".format(self.name, self.__color))
        print("实例了{}只猫".format(Cat.count))
        # 类属性内部调用:类名.属性名

    def __get_none(self):
    # 私有方法不可被类和实例直接调用
        return "我是私有方法"

    def test(self):
        get_siyou = self.__get_none()
        return get_siyou


lulu = Cat("lulu", 2, "white")  # 实例化对象
nana = Cat("nana", 1, "black")
lili = Cat("lili", 0.5, "gray")
print("实例个数:{}".format(Cat.count))
# 类属性外部调用:类名.属性名
lulu.print_cat()  # 调用类方法:实例名.方法名()
a = lulu.test()  # 间接调用类内部私有方法
print(a)

运行结果为
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值