zoukankan      html  css  js  c++  java
  • 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老师会上课拖堂

  • 相关阅读:
    Enable mod_rewrite in apache2.2
    静态注册BroadcastReceiver内部类
    Install MySQL Server 5 on Ubuntu
    Install PHP and Apache
    Android BroadcastReceiver应用详解
    C 简易贪吃蛇的编写
    MyBatis学习存档(1)——入门
    MyBatis学习存档(2)——核心配置文件
    Maven学习存档(2)——settings.xml配置
    Java中的float、double计算精度问题
  • 原文地址:https://www.cnblogs.com/python1988/p/11150584.html
Copyright © 2011-2022 走看看