`

一个python类 的 示例

 
阅读更多

python类的定义是很方便的

class A(object):
    """docstsadfasdfring for A"""
    finger = 10  # class attribute defined here
    leg = 2
    age = 0
    def __init__(self, arg={}):
        super(A, self).__init__()
        self.arg = arg
        self.name = ''  # data attribute defined here
        self.age = 0    # data attribute和class attribute的区别就是函数的local变量
                        # 与函数外部变量的区别(把class看成函数)


    # special method 特殊方法以__开头和结束
    def __setitem__(self, key, item):  
        self.arg[key] = item

    def __getitem__(self, key):
        return self.arg[key]
        
    def __repr__(self):
        return str(self.name)
    
    # private method 私有方法只以__开头
    def __bb(self):
        print '__bb'  

    # public method
    def aa(self):  
        # 类属性应该是和实例无关的,不应该在这里修改,但可以改
        self.__class__.finger += 3  
        # 更不应该这样改类属性,很混乱
        # self.finger += 3  
        # 不应该有类似这样的写法,类属性先定义
        self.__class__.name = 'tom'
        # 类属性和实例属性同名
        self.age += 1
        self.__class__.age += 2
    
    # 类方法, 类属性应该在类方法中修改
    @classmethod
    def heteromorphosis(cls):
        cls.leg += 1
        # cls.finger == self.__class__.finger 
        # cls实在类方法中修改类属性,后者是在实例方法中修改类属性,有点不伦不类
        cls.finger += 1

a = A()
a.aa()
b = A()

print a.finger, b.finger, A.finger
print A.name, b.name
print a.age, A.age
A.heteromorphosis()
print a.leg, A.finger, a.finger

 

# encoding: UTF-8
class M(object):
    def __init__(self):
        # 这些值都存在实例的__dict__里
        self.hello = None
        self.foo = None
        self.ppp = None


m = M()

m.__dict__.update({'hello': 'world',  'foo': 'bar'})

print m.hello
print m.__dict__

 

分享到:
评论

相关推荐

    Python实战示例游戏源码-飞鸟.zip

    Python实战示例游戏源码-飞鸟Python实战示例游戏源码-飞鸟Python实战示例游戏源码-飞鸟Python实战示例游戏源码-飞鸟Python实战示例游戏源码-飞鸟Python实战示例游戏源码-飞鸟Python实战示例游戏源码-飞鸟Python实战...

    AUROC的python代码示例

    AUROC(Area Under the Receiver Operating Characteristic curve,接受者操作特征曲线下面积,即ROC曲线下面积)的python代码示例

    Python-一些Python示例

    例如,我们可以定义一个名为Person的类,具有name和age属性,以及say_hello()方法。 异常处理是Python中的重要部分,使用try/except语句来捕获并处理运行时错误。例如,如果你尝试除以零,Python会抛出...

    学习Python,练习Python,各种实用Python代码示例!.zip

    例如,你可以创建一个Person类,包含属性如name和age,以及方法如say_hello()。 Python还提供了丰富的标准库,如requests库用于HTTP请求,pandas用于数据分析,matplotlib和seaborn用于数据可视化。通过这些库,...

    Python爬虫示例之distribute-crawler-master.zip

    Python爬虫示例之distribute_crawler-master.Python爬虫示例之distribute_crawler-master.Python爬虫示例之distribute_crawler-master.Python爬虫示例之distribute_crawler-master.Python爬虫示例之distribute_...

    Python学习示例程序

    Python示例程序,里面有十个小程序,看完之后会对Python编程有更加深入的了解

    pyhton示例 python demo python图形化示例 python Gui示例

    包含了数十个图形化界面的Python示例,包括表格、仿微信界面、仿QQ设置、各种图形界面,菜单操作,调用dll等。 pyhton示例 python demo python图形化示例 python Gui示例

    一个简单的 Python 爬虫示例

    一个简单的 Python 爬虫示例

    python绘图示例

    简单的python绘图示例 。

    MFC调用Python示例

    总的来说,这个示例提供了MFC与Python集成的一个简单范例,对于了解不同语言间的协作机制,以及如何在Windows环境中利用Python的强大功能扩展C++应用,具有很好的学习价值。在实际开发中,这样的跨语言调用技术可以...

    python初学程序示例

    "python初学程序示例"这个资源就是一个极好的起点,它包含了一系列为新手设计的代码实例。下面,我们将深入探讨这些可能包含的知识点,以及如何从这些示例中学习。 1. **基础语法**: Python以其简洁明了的语法而...

    python学习示例源码

    本资源“python学习示例源码”是针对Python编程的学习材料,包含了一系列的实际代码示例,可以帮助用户深入理解Python语言的核心概念和常用技巧。 在Python编程中,我们首先会接触到基础语法,如变量、数据类型...

    一个简单的Python脚本示例 以下是一个Python脚本,它会打印出"Hello, World!"

    一个简单的Python脚本示例。以下是一个Python脚本,它会打印出"Hello, World!

    引体向上计数算法python源码+示例视频.zip

    【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴...引体向上计数算法python源码+示例视频.zip

    Python示例文件

    Python是一种高级编程语言,...总的来说,"Python示例文件"涵盖了Python编程的多个方面,对于想要深入学习Python的人来说,这是一个宝贵的资源。通过阅读和运行这些示例,不仅可以巩固理论知识,还能提升实际编程能力。

    Python爬虫示例代码

    上七月算法 Python爬虫班 第一课示例代码

    c#+python爬虫示例

    这个示例为初学者提供了一个跨语言的实践平台,帮助他们更好地理解和运用爬虫技术,同时也展现了不同编程语言在实际项目中的协作可能性。通过深入研究和实践这个示例,开发者可以进一步提升自己的技能,为未来更复杂...

    Python绘图示例Demo源码

    "51Aspx源码必读.txt"可能是提供了一些关于学习和理解示例的提示或建议,而".url"文件则可能指向一个资源网站,提供更多的Python绘图示例或学习资料。".gif"文件可能是一个简短的动图,展示Demo运行的效果。 总的来...

    python 定义一个 people 类 示例

    python定义一个people类,增加相关函数

    python登陆示例

    一个简单的python登陆程序,供新手入门使用,供参考

Global site tag (gtag.js) - Google Analytics