栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python中属性的总结探讨

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python中属性的总结探讨

Python中属性的总结探讨

在Python中,属性可以分为类属性和对象属性(又称为实例属性)

这里我从属性的定义,和调用两个方面进行了总结

同时,根据类的内部外部作用域不同,又会产生不同的情况

总结如下,欢迎探讨指正

0.概述
  • 对象属性是每个对象都含有的,但是类属性只有一个(无论实例化了多少对象)
  • 类属性:
    • 可以被继承;
    • 可以设置私有,但是很少这样做;
    • 可以使用对象.属性进行调用,但是很少使用,因为不符合代码通用性
  • 实际开发中,一般会使用装饰器@classmethod来修饰类方法,并且在类方法中对类属性和其他方法进行调用
1.对象属性 1.1内部定义-内部调用
class Person(object):
    def __init__(self):
        # 内部定义
        self.name = '张三'
        # 内部调用
        print(self.name)


p1 = Person()  # 输出 张三
1.2内部定义-外部调用
class Person(object):
    def __init__(self):
        # 内部定义
        self.name = '张三'


p1 = Person()
# 外部调用
print(p1.name)	# 输出 张三
1.3外部定义-外部调用
class Person(object):
    pass


p1 = Person()
# 外部定义
p1.name = '张三'
# 外部调用
print(p1.name)	# 输出 张三
1.4外部定义-内部调用
class Person(object):
    def func1(self):
        # 内部调用
        print(self.name)


p1 = Person()
# 外部定义
p1.name = '张三'

# 验证代码
p1.func1()  # 输出 张三
2.类属性 2.1内部定义-内部调用
class Person(object):
    # 内部定义
    count = 0
    # 内部调用
    print(count)

    def __init__(self):
        # 内部调用
        print(Person.count)


# 验证代码
p1 = Person()  # 输出 两个0
2.2内部定义-外部调用
class Person(object):
    # 内部定义
    count = 0


p1 = Person()	
# 外部调用
print(Person.count)  # 输出 0
print(p1.count)  # 输出 0,但是不推荐使用这种对象.类属性的方式
2.3外部定义-外部调用
class Person(object):
    pass


# 外部定义
Person.count = 0
# 外部调用
print(Person.count)	# 输出 0
2.4外部定义-内部调用
class Person(object):
    def func1(self):
        # 内部调用
        print(Person.count)


# 外部定义
Person.count = 0

# 验证代码
p1 = Person()
p1.func1()  # 输出 0
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/928854.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号