21天挑战学习-Day15一些零散的知识


活动地址:CSDN21天学习挑战赛

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
想系统/深入学习某技术知识点…
一个人摸索学习很难坚持,想组团高效学习…
想写博客但无从下手,急需写作干货注入能量…
热爱写作,愿意让自己成为更好的人…

目录

一、修改查看私有属性

二、对于try相关的一些东西

​三、类对象、实例对象、类方法、类属性、实例属性

1.区分实例属性和类属性

 2.区分实例方法和类方法、静态方法

 四、预告


一、修改查看私有属性

class Test(object):
    def __init__(self, name):
        self.__name = name


a = Test("laowang")
print(a._Test__name)  # laowang

结论:

定义类的时候如果有私有属性解释器会把名字改了即加上了_类名__变量名

 补充:

实例对象.__dict__  检查实例对象里面的所有属性
类.__dict__  检查类的所有属性

二、对于try相关的一些东西

try:
    xxxxx
except xxx:
    如果有异常但是没有捕获该类型直接报错
except xxx:
    xxxx
except:
    pass直接捕获所有异常
else:
    没有异常执行
finally:
    不管有没有异常都要执行

​三、类对象、实例对象、类方法、类属性、实例属性

1.区分实例属性和类属性

对于python而言所有的都是对象
一个类即一个模板也是一个对象,有自己的空间
类对象只有一个,而实例对象有多个,类属性是公有的只有一份
所以独有的放在实例属性里面,公有的放在类属性里面

class Province(object):
    # 类属性
    country = '中国'

    def __init__(self, name):
        # 实例属性
        self.name = name


# 创建一个实例对象
obj = Province('山东省')
# 直接访问实例属性
print(obj.name)
# 直接访问类属性---->Province.country

当创建一个实例对象时
    1.调用__new__--->创建对象,通俗点就是有一个内存空间
    2.__init__----->对刚刚申请的空间进行初始化
    3.把内存空间的引用传递给self
    4.self.name---->指向self的内存空间

【实例属性需要通过对象来访问】【类属性通过类访问】,在使用上可以看出实例属性和类属性的归属是不同的。 

  • 类属性在内存中只保存一份
  • 实例属性在每个对象中都要保存一份

 2.区分实例方法和类方法、静态方法

  • 实例方法:由对象调用;至少一个self参数;执行实例方法时,自动将调用该方法的对象赋值给self;
  • 类方法:由类调用; 至少一个cls参数;执行类方法时,自动将调用该方法的类赋值给cls;
  • 静态方法:由类调用;无默认参数;

class Foo(object):
    def __init__(self, name):
        self.name = name

    def ord_func(self):
        # 定义实例方法,至少有一个self参数,自动传入实例对象的引用
        # print(self.name)
        print('实例方法')

    @classmethod
    def class_func(cls):
       # 定义类方法,至少有一个cls参数,自动传入类对象的引用
        print('类方法')

    @staticmethod
    def static_func():
        # 定义静态方法,无默认参数
        print()



f = Foo("中国")
# 调用实例方法
f.ord_func()

# 调用类方法
Foo.class_func()

# 调用静态方法
Foo.static_func()

类对象只能调用类方法,静态方法,而实例对象可以调用类方法 静态方法 实例方法

 四、预告

明天发表mysql数据库相关的知识。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

『Knight』

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值