编程语言
首页 > 编程语言> > Python爬虫特训第二周(程序设计与数据结构)

Python爬虫特训第二周(程序设计与数据结构)

作者:互联网

标题

# 面向过程

stu1 = {'name': 'Reus', 'score': 99}
stu2 = {'name': 'Sancho', 'score': 95}


# 函数
def print_score(stu):
    print('%s: %s' % (stu['name'], stu['score']))


# 面向对象
# 1.设计类
# 属性和方法

class Student(object):
    # 方法    self指向创建的实例本身
    def __init__(self, name, score):
        self.name = name
        self.score = score

    def print_score(self):
        print('%s: %s' % (self.name, self.score))


# 实例化对象1
Reus = Student('Reus', '99')
print('id Reus:', id(Reus))
# 实例化对象2
Sancho = Student('Sancho', '95')
print('id Sancho:', id(Sancho))
# 实例化对象3    即使内容一样,id也不一样,因为分配的内存不一样
Sancho = Student('Sancho', '95')
print('id Sancho:', id(Sancho))

Reus.print_score()
Sancho.print_score()

输出结果如下
在这里插入图片描述

"""
    继承,封装,多态
"""

class Student(object):
    def __init__(self, name, score):
        self.name = name
        self.score = score

    def print_score(self):
        print('%s: %s' % (self.name, self.score))

    def get_grade(self):
        if self.score >= 90:
            return 'A'
        elif self.score >= 60:
            return 'B'
        else:
            return 'C'


Akanji = Student('Akanji', 50)
print(Akanji.get_grade())

输出结果如下
在这里插入图片描述
访问限制

class Student(object):
    def __init__(self, name, score):
        self.__name = name
        self.__score = score

    def print_score(self):
        print('%s: %s' % (self.__name, self.__score))

    def get_grade(self):
        if self.__score >= 90:
            return 'A'
        elif self.__score >= 60:
            return 'B'
        else:
            return 'C'

    def set_score(self, score):
        if 0 <= score <= 100:
            self.__score = score
        else:
            raise ValueError('分数应在0-100之间')

    def get_score(self):
        return self.__score

Akanji = Student('Akanji', 50)
print(Akanji.get_score())
print(Akanji.set_score(80))
print(Akanji.get_score())

# Python没有真正的私有,把私有名称改成_Student__name
print(Akanji._Student__name)

运行结果如下
在这里插入图片描述

"""
    类属性
"""
# 实例属性 必须通过初始化或实例化对象,通过对象去访问
class Student(object):
    def __init__(self, name):
        self.name = name

s = Student('ABC')
print(s.name)

# 类属性   不需要实例化对象,直接通过类名访问
class Student(object):
    name = 'Student'

print(Student.name)

输出结果如下
在这里插入图片描述

标签:特训,name,Python,self,爬虫,score,Student,print,def
来源: https://blog.csdn.net/weixin_50405574/article/details/114059636