python面向对象02


"""面向对象的命名空间
实例找到类的方式:  实例中有类指针指向所在的类
"""

class A:
    country = "中国"
    def __init__(self,name,age,country):
        self.name = name
        self.age = age
        # self.country = country
    def fun1(self):pass
    def fun3(self):pass
    def fun2(self):pass

a = A('user01','25','印度')
b = A('user02','26','泰国')
A.country = "俄国"
# print(a.country)
# print(b.country)
# print(A.country)
"""
小结:
类中的变量是静态变量
对象中的变量只属于对象本身,每个对象有属于自己的空间来存储对象的变量
当使用对象名去调用某一个属性的时候,会优先在自己的空间中寻找,找不到再去对应的类中寻找
如果对象中自己没有需要的属性,就引用类的,类中也没有就报错
对于类来说,类中的所有变量,所有的对象都是可以读取的,并且读取的是同一份变量
"""

# 练习: 实现一个类,能够自动统计这个类实例化了多少个对象
class A:
    count = 0
    def __init__(self):
        A.count += 1

a1 = A()
print(a1.count)  #1
print(A.count)  #1
a2 = A()
print(A.count)  # 2
"""
类中的静态变量的用处:
如果一个变量,是类中的所有对象共享的值,那么这个变量应该别定义为静态变量
如果和静态变量相关的增删改查都应该使用类名来处理  如:A.count += 1
而不应该使用对象名直接修改静态变量       如:a.count += 1
"""
posted @ 2020-11-09 09:48  精灵中的二丫  阅读(68)  评论(0)    收藏  举报