class Chinese:
country='China'
def __init__(self,name):
self.name=name
def play_ball(self,ball):
print('%s 正在打 %s' %(self.name,ball))
p1=Chinese('alex')
print(p1.country) #China
p1.country='日本' #只是在实例的字典属性里增加了一对country:日本
print('类的--->',Chinese.country) #类的---> China
print('实例的',p1.country) #实例的 日本
country='中国'
class Chinese:
def __init__(self,name):
self.name=name
def play_ball(self,ball):
print('%s 正在打 %s' %(self.name,ball))
p1=Chinese('alex') #一实例化就会触发__init__函数
print(p1.country) #只能找到类那一层
#报错:AttributeError: 'Chinese' object has no attribute 'country'
country='中国-----------'
class Chinese:
country='中国'
def __init__(self,name):
self.name=name
print('--->',country)
def play_ball(self,ball):
print('%s 正在打 %s' %(self.name,ball))
print(Chinese.__dict__)
print(Chinese.country) #中国
p1=Chinese('alex') #---> 中国-----------
print('实例--------》',p1.country) #实例--------》 中国
#用加 . 的方式去找属性,只能找到类那一层,且不是类属性就是实力属性
#其他的方式,就跟类和实例没关系,不会在类或实例的字典属性里找,直接在类的外层找
# class Chinese:
# country='China'
# def __init__(self,name):
# self.name=name
#
# def play_ball(self,ball):
# print('%s 正在打 %s' %(self.name,ball))
# p1=Chinese('alex')
#
# print(p1.country) #China
# p1.country='Japan'
# print(Chinese.country) #China
class Chinese:
country='China'
l=['a','b']
def __init__(self,name):
self.name=name
def play_ball(self,ball):
print('%s 正在打 %s' %(self.name,ball))
p1=Chinese('alex')
print(p1.l) # ['a', 'b']
# p1.l=[1,2,3] #就是新增了实例的属性
# print(Chinese.l) #['a', 'b']
# print(p1.__dict__) #{'name': 'alex', 'l': [1, 2, 3]}
p1.l.append('c') #拿到的是类的属性
print(p1.__dict__) #{'name': 'alex'}
print(Chinese.l) #['a', 'b', 'c']