2019年7月8日 对象与实例属性

class MyData:
    pass

x=10#在全局作用域内声明变量
y=20
MyData.x=1#在局部作用域内声明变量
MyData.y=2

print(MyData.x,MyData.y,x,y)

 

 

3个country位置 注意作用域的概念

country='最外层的country:china'
class Chinese:
    'chinese people 的类'
    dang='GCD' #定义类属性
    print('1.先在Class中寻找,如果找不到就找最外层', country)
    country='Class中的country:Japan'
    print('2.先在Class中寻找,如果找不到就找最外层', country)
    def __init__(self,name,age,gender):#self 代表自身,初始化函数,class 中只要把名字定义为__init__,自动去运行,函数必须要有self 参数
       #   self.country=input('请输入国家:')#不推荐写在init内部,写在外面
        self.mingzi=name  #定义类名字属性,并封装到self中
        self.nianji=age
        self.xingbie=gender
        #自动return
        country='init中的country'
        print('3.这就是一个普通变量,不是类中的属性,不需要遵从类的作用域,只需要寻找自身所在的域,不会到class中寻找,如果找不到,则直接到最外层域中:', country)

    def sui_di_tu_tan(self):#将自身传递给参数
        print('%s随地吐痰'%self.mingzi)

    def cha_dui(self):
        print('%s插到了前面'%self.mingzi)

    def eat_food(self,food):
        print('%s正在吃%s'%(self.mingzi,food))

p3=Chinese('xxx',77,'man')
p3.dang='GMD' #在p3的字典内做更改
print('',Chinese.dang)#类的字典内没做更改
print('实例',p3.dang)
print(p3.__dict__)

》》》

1.先在Class中寻找,如果找不到就找最外层 最外层的country:china
2.先在Class中寻找,如果找不到就找最外层 Class中的country:Japan
3.这就是一个普通变量,不是类中的属性,不需要遵从类的作用域,只需要寻找自身所在的域,不会到class中寻找,如果找不到,则直接到最外层域中 init中的country
类 GCD
实例 GMD
{'mingzi': 'xxx', 'nianji': 77, 'xingbie': 'man', 'dang': 'GMD'}

 

 

class Chinese:
    country='china'
    l=[1,2,3,4]
    def __init__(self,name):
        self.name=name

p4=Chinese('ZYK')
print(p4.l)
# p4.l=[4,3,2,1]#如果这里有这行,则下列的append是在操作这一行
p4.l.append(5)#使用这种方法更改,是更改的类,因为P4.l调用的是类中的l,如果是p4.l=[4,3,2,1]代表的是新增了个p4的赋值,append不是赋值
print(Chinese.l)

》》》

[1, 2, 3, 4]
[1, 2, 3, 4, 5]

 

 

class School:
    '学校'
    zhucedi='China'
    def __init__(self,name,address,type):
        self.name=name
        self.address=address
        self.type=type
    def money(self,money):
        print('%s的学费是%s元'%(self.name,money))

s1=School('清华','北京','大学')
s2=School('上中','上海','高中')
print(s1.__dict__,s2.__dict__)
s1.money(4444)
s2.money(3333)

class Teacher:
    '老师'
    bianzi='正式工'
    def __init__(self,name,school,money,man,lesson):
        self.name=name
        self.school=school
        self.money=money
        self.man=man
        self.lesson=lesson
    def shangke(self,huibuhui):
        print('%s老师%s上课拖堂'%(self.name,huibuhui))

t1=Teacher('zyk','LDZX',555,'MAN','Music')
t1.shangke('')

{'name': '清华', 'address': '北京', 'type': '大学'} {'name': '上中', 'address': '上海', 'type': '高中'}
清华的学费是4444元
上中的学费是3333元
zyk老师会上课拖堂

posted @ 2019-07-08 13:13  小圣庄  阅读(114)  评论(0编辑  收藏  举报