我是靠谱客的博主 端庄滑板,最近开发中收集的这篇文章主要介绍python中属于私有属性的是_Python中的私有属性,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Python中没有像C++中public和private这些关键字来区别公有属性和私有属性。它是以属性命名方式来区分,如果在属性名前面加了2个下划线'__',则表明该属性是私有属性,否则为公有属性(方法也是一样,方法名前面加了2个下划线的话表示该方法是私有的,否则为公有的)。

class Plane(object):

def __init__(self):

self.mA = 100

self.mB = 200

self.__mC = 300

p  = Plane()

但是类的方法可以封装__私有属性,如下可以通过Student.get_name访问self.__name

class Student(object): # 类名的括号里写继承的类,如果没有则写object,这是所有类都要继承的类

school = '清华大学' # 直接在类中定义的属性为类属性,归Student类所有,所有实例都可以访问到,但是与java的静态变量不同,如果一个实例改变了school的值,那么这个新值就生效,且只对这一个实例生效

def __init__(self, name, score): # 只要是class中定义的函数,第一个参数都要写self,并且调用时第一个参数都不必传                                     # init 是特殊函数,在创建类时会调用,相当于java的构造函数        self.__name = name # 可以直接self.新的变量名,注意,两个下划线开头的变量名为私有变量,不允许外部访问,但可以通过get和set方法访问和赋值        self.__score = score # 以两个下划线开头且以两个下划线结尾的变量为特殊变量,特殊变量不是私有变量,允许外部访问,因此起变量名时不要起成这种特殊变量的格式

def get_name(self):        return self.__name

def get_score(self):        return self.__score

def set_score(self, score):        if 0 <= score <= 100:            self.__score = score        else:            raise ValueError('bad score') # 手动抛出异常

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

最后

以上就是端庄滑板为你收集整理的python中属于私有属性的是_Python中的私有属性的全部内容,希望文章能够帮你解决python中属于私有属性的是_Python中的私有属性所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部