zoukankan      html  css  js  c++  java
  • python基础4—面向对象

    感觉和java相比一个是大公司,一个是小公司, 大公司规范有文档,小公司简约效率高

    面向对象  
    # 成员属性名称前 加上 __ 意为private
    # get / set :  get_name()   set_name(name) 
    class Student:
        def __init__(self, name, age):
            self.name = name
            self.age = age
            
        def detail(self):
            print(self.name)
            print(self.age)
          
    class PrimaryStudent(Student):  # inherent
        def lol(self):
            print('can not win then run faster than others')
    
    class CollegeStudent(Student):
        def __init__(self, name, age, gf):  # overrite构造函数
            self.name = name
            self.age = age
            self.gf = gf
    
        def gf_detail(self):
            print(self.gf)
    
    obj1 = PrimaryStudent('小学生', 7)
    obj1.lol()
    obj1.detail()
    
    obj2 = CollegeStudent('王思聪', 29, '张雨欣')
    obj2.detail()
    obj2.gf_detail()
    
    print(dir(obj1))                            # class info as list
    print(hasattr(obj1, 'name'))        # True
    setattr(obj1, 'name', 'jack')  
    print(getattr(obj1, 'name'))          # jack
    print(getattr(obj1, 'name', 404))  # jack
    fn = getattr(obj1, 'detail')             #7
    fn()
    
    #  实例属性和类属性
    class Student(object):
        name = 'Student'
        def __init__(self, name):
            self.name = name   # 类属性
    s = Student('Bob')
    s.score = 90               # 实例属性
    
    print(s.name) 
    s.name = 'Jack'          # 给实例属性绑定name属性, 实例属性优先级比类属性高 
    print(s.name)              # Jack
    print(Student.name)   # Student
    del s.name                 # 删除实例name属性
    print(s.name)             # Student
  • 相关阅读:
    记录某次应急演练
    C++之分文件编写
    C++之冒泡排序实现
    cobaitstrike之修改特征
    cobaitstrike之DNS上线
    网盘搜索【不断更新ing】
    CVE-2021-2109 Weblogic Server远程代码执行
    C++之一维&二维数组
    CDH-5.12.2安装教程
    linux安装mysql教程
  • 原文地址:https://www.cnblogs.com/zeroones/p/8329497.html
Copyright © 2011-2022 走看看