【如何在Python中通过内部类获取伪私有属性?】教程文章相关的互联网学习教程文章

python django模型内部类meta详解

Django 模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性。以下对此作一总结:abstract 这个属性是定义当前的模型类是不是一个抽象类。所谓抽象类是不会对应数据库表的。一般我们用它来归纳一些公共属性字段,然后继承它的子类可以继承这些字段。比如下面的代码中Human是一个抽象类,Employee是一个继承了Human的子类,那么在运行syncdb命令时,不会生成Human表,但是会生成一个Employee表,它包含了Human中继...

在python中进行单元测试元类和内部类

我通常按??课程进行单元测试,这没有问题.但是,在弄乱了python之后,我遇到了其他语言,元类和内部类中从未遇到过的问题. 假设我有一个包含内部类和元类的类,针对这种情况构造单元测试的最佳方法是什么? 一种方法可能是在一个测试模块中测试这三个模块,因为它们是如此紧密地耦合在一起.但这对我来说似乎是错误的.但是,我将如何自行对元类进行单元测试,在使用所述元类的测试中创建一个虚拟类? 你的想法请stackoverflow!解决方法:您可...

如何在Python中通过内部类获取伪私有属性?【代码】

class Test:__x = 1class C:def test(self):print(Test.__x)c = C()a = Test() a.c.test()我收到这样的错误信息AttributeError: type object ‘Test’ has no attribute ‘_C__x’那么,是内部阶级无法获得外部阶级的权利吗?还是可以使用其他技术? 这个问题来自阅读Learning Python,当作者写CardHolder时,一个内部类作为描述符使用instance .__ name到达外部类的属性,那么我们是否可以访问__X属性的规则是什么? 感谢您阅读我的问...

为了获得良好的风格,我应该在Python中的方法之前定义内部类,反之亦然吗?【代码】

我读了PEP 8: Style Guide for Python code,但找不到什么顺序定义类或内部类. 例如,我应该class CustomClass(BaseClass):class Meta:foo = self.bardef foo_bar(self):return Falsebar = 1要么class CustomClass(BaseClass):def foo_bar(self):return Falseclass Meta:foo = self.barbar = 1? 编辑:这是Django源代码.他们实际上定义字段,然后定义内部类,然后定义方法:class LogEntry(models.Model):action_time = models.DateTi...

Python样式问题:支持类作为内部类?【代码】

我喜欢使用语言中内置的结构来组织我的代码.但有一种情况我不能保持一致,仅仅是因为我没有看到明确的最佳方式.它是关于支持类,即由另一个类在内部专门使用的类:我是将它们作为内部类还是单独的类. 内部课程:class Complicated:class Utility1:passclass Utility2:passpass单独的课程:class Complicated:passclass Utility1:passclass Utility2:pass内部类具有在使用它们的唯一类中作用域的优点.但问题是由于缩进,我得到的代码空...

如何将内部类的代码移动到不同的文件(Python)?【代码】

假设我有一个内部类的类:class A:class B:......我想在与A类代码不同的文件中实现B类,以提高可读性. 如何实现这一目标? 编辑:我不希望B以除A.B.以外的任何方式访问.解决方法:你可以这样做: b_class.py:class _B:...a_class.py:import b_classclass A:B = b_class._B...Pythonic OOP的原则之一是“我们都同意这里的成年人”.这意味着您通常不想强制隐藏信息.领先的下划线曾经意味着“不要使用它”,但它们不会阻止被访问的东西...

python – 具有namedtuple()的内部类【代码】

我试图使用collections.namedtuple将字典转换为python对象.import Zabbixclass Foo:def bar(self):collections.namedtuple('Zabbix.Request',['b','c'])这导致了ValueError: Type names and field names must be valid identifiers: 'Zabbix.Request'我的简单修复就是扩展Foo中的内部类import Zabbixclass Foo:class Request(Zabbix.Request):passdef bar(self):collections.namedtuple('Request',['b','c'])有没有更好的办法?目前...