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
"""
欢迎转载,但要标明出处.否则追究.欢迎大家阅读收藏和评论,会更新很多精粹。

浙公网安备 33010602011771号