python总结——类与对象

目录

1.类和对象的构成

2.实例属性、实例方法、类属性、类方法和静态方法

2.1 内存分析

3.代码演示及分析      


1.类和对象的构成

        类由属性和方法构成,对象是类实例化后的结果。不同对象之间共享类中的方法,但不共享实例属性(实例属性是各自的,类属性是共享的)。

2.实例属性、实例方法、类属性、类方法和静态方法

        实例属性和实例方法从属于实例对象,类属性和类方法从属于类。其中类属性被所有实例对象共享,类方法不可以调用实例属性和实例方法。与类和对象无关的方法称为静态方法,静态方法不可调用实例属性和实例方法。

2.1 内存分析

 

3.代码演示及分析      


class Car(object):  # 类对象
    car_num = 0  # 类属性(在__init__外部定义)

    def __init__(self, brand, price):  # 构造函数(初始化实例属性)
        self.brand = brand  # 实例属性(在__init__内部定义)
        self.price = price  # 实例属性
        Car.car_num += 1  # 类修改类属性

    def level(self):  # 实例方法
        if self.price > 300000:
            print(f"{self.brand}是高级轿车")
        else:
            print(f"{self.brand}是非高级轿车")

    @classmethod
    def car_count(cls):  # 类方法,只访问类属性,不能访问实例属性和方法
        print(f"我有{cls.car_num}辆车")

    @staticmethod
    def tips():  # 静态方法,既不访问成员变量,也不访问类变量
        print("温馨提示:开车不喝酒")


if __name__ == "__main__":
    print(" --------------实例对象访问实例属性、实例方法、类属性、类方法、静态方法--------------")
    # 通过类创建实例对象
    bmw = Car("宝马", 500000)
    print("实例对象访问实例属性:{0}".format(bmw.brand))  # 实例对象访问实例属性
    bmw.level()  # 实例对象调用实例方法
    print("实例对象访问类属性:{0}".format(bmw.car_num))  # 实例对象访问类属性
    bmw.car_count()  # 实例对象调用类方法
    bmw.tips()  # 对象调用静态方法

    print("--------------类访问实例属性、实例方法、类属性、类方法、静态方法--------------")
    # print(Car.brand) # 类不可以访问实例属性
    # Car.level() # 类不可以访问实例方法 但可以通过Car.level(bmw)
    print(Car.car_num)  # 类可访问类属性(即使没有对象)
    Car.car_count()  # 类调用类方法(即使没有对象)
    Car.tips()  # 类调用静态方法(即使没有对象)





--------------实例对象访问实例属性、实例方法、类属性、类方法、静态方法--------------
实例对象访问实例属性:宝马
宝马是高级轿车
实例对象访问类属性:1
我有1辆车
温馨提示:开车不喝酒
--------------类访问实例属性、实例方法、类属性、类方法、静态方法--------------
1
我有1辆车
温馨提示:开车不喝酒

 总结:对象可以调用类中的属性和方法,但类方法不可以调用实例属性和方法

个人总结,不对之处欢迎指出

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值