zoukankan      html  css  js  c++  java
  • 面向对象初识

    面向对象

    class Person(): #声明一个类
        contry = 'CN'   #静态属性,类属性
        def __init__(self,*args):  #初始化方法,调用类时触发方法,调用之前,python帮我们创建了一个空对象self
            self.name = args[0]  #给self的属性赋值
            self.age = args[1]
        def walk(self,n):   #方法,必须传self参数,且必须写在第一个,后面还可以有其他参数
            print(self.contry)  #可以调用静态属性
            print('%s走啊走,走了%d步'%(self.name,n))
    
    p = Person('jcc',18)    #定义一个对象p
    p.walk(9)   #对象可以直接调用方法
    Person.walk(p,7) #类可以调用方法,必须传入一个对象
    print(p.name)   #对象可以调用对象属性
    print(p.contry) #对象可以调用静态属性
    print(Person.contry)    #类可以调用静态属性
    # print(Person.name)    #类不可以调用对象属性
    print(Person.__dict__)  #查看类的所有属性和方法
    print(p.__dict__)   #查看对象中的所有属性
    p.name = 'tff'  #对象属性可以修改
    Person.contry = 'JP'     #修改静态属性的值
    p.contry = 'cn'     #并没有影响静态属性,只是为对象又添加了一个contry属性
    View Code

    关于可变类型的类属性

    class Person():
        ex = []
        def __init__(self,name,age,sex):
            self.name = name
            self.age = age
            self.sex = sex
        def do(self,dosomething):
            print('%s,%s,%s,%s'%(self.name,self.age,self.sex,dosomething))
    p1 = Person('小张',18,'')
    p2 = Person('小王',20,'')
    
    Person.ex = ['judy']
    
    p1.ex[0] = 'elina'
    print(p2.ex)
    print(Person.ex)
    
    p1.ex = 'elina'
    print(p2.ex)
    print(Person.ex)
    
    # 对象和类是单向连接
    View Code

    ....待续

  • 相关阅读:
    17. 电话号码的字母组合
    12. 整数转罗马数字
    01-正则表达式基础
    前端SEO技巧
    node.js
    Vue.生命周期
    Vue小案例--过滤器的基本操作
    vue简单的计算器
    VSCode 自动刷新
    Vue.js学习
  • 原文地址:https://www.cnblogs.com/jiangchengcheng/p/9593712.html
Copyright © 2011-2022 走看看