失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python的类里的属性是否可以为列表_是否有Python方法可以访问类的所有非私有和非内置

python的类里的属性是否可以为列表_是否有Python方法可以访问类的所有非私有和非内置

时间:2019-01-28 14:51:21

相关推荐

python的类里的属性是否可以为列表_是否有Python方法可以访问类的所有非私有和非内置

我想调用一种方法给我一个所有“非私有”的词典(我在这里使用“私有”一词,因为它在

Python中并不存在)和非内置属性(即那些在类上不要以单个或双下划线开头.像vars(MyClass)这样的东西只能返回该类的“公共”属性.

我知道

from M import *

不会导入名称以下划线开头的对象. (/dev/peps/pep-0008/#id25)导入如何实现?通过内置函数或仅通过检查下划线?什么是pythonic方法呢?

例:

class MyClass(object):

def __init__(self):

do_stuff()

def _private(self):

print 'private'

def __gets_name_mangled(self:

print 'becomes _MyClass__gets_name_mangled()'

def public(self):

print 'public'

如果我做

vars(MyClass).keys()

我明白了

['_MyClass__gets_name_mangled','__module__','_private','__doc__','__dict__','__weakref__','public','__init__']

我怎么才能得到

['public']

或者我只是需要自己检查下划线?看起来似乎会有一种pythonic方式来做到这一点.

python的类里的属性是否可以为列表_是否有Python方法可以访问类的所有非私有和非内置属性?...

如果觉得《python的类里的属性是否可以为列表_是否有Python方法可以访问类的所有非私有和非内置》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。