Python类中self.name = name和self._name = name的区别

本质区别是self.name = name 可以 实例.name 外部访问。
这个不是私有属性

self._name =name 不可以 外部访问
这个是私有属性

# -*- coding:utf-8 -*-
class Student(object):
    def __init__(self, name, grade):
        self.name = name
        self.grade = grade

    def print_grade(self):
        print(f"{
      
      self.name}'s grade is {
      
      self.grade}")

s = Student("Tom", 8)

s.print_grade()

在这里插入图片描述

# -*- coding:utf-8 -*-
class Student(object):
    def __init__(self, name, grade):
        self._name = name
        self.grade = grade

s = Student('Tom', 8)

s.print_grade()

结果报错!

使用原则:

在类的内部访问变量的时候用下划线"_"

其他类要访问这个类的变量时用"."

猜你喜欢

转载自blog.csdn.net/weixin_56197703/article/details/126820682
今日推荐