码迷,mamicode.com
首页 > 其他好文 > 详细

012: class and class objects > 初步了解

时间:2016-01-11 23:32:00      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

终于开始学习面向对象的基础知识了,面向对象三大特点:

1. 继承

2. 多态

3. 封装

程序的世界只有两种元素:数据,算法。 算法一直试图改变数据,得到一种新的数据。

类的功能也就是把数据和算法放到一起,这中写法改变了代码的格局,更适合人的思维,因此一经推出便得到了长足的发展。

 

Pyhong的类个人感觉是做了一个融合,把javascript当中的对象思想和其他语言的类的思想融合在了一起,下面的例子将简单的介绍一些基本概念。

1. 对象相对于类是可以变化的,这个是javascript里面的对象所拥有的属性。

class Human(object):
    pass

def say_hello():
    print(hello)

Tom = Human()    
Tom.name = Tom
Tom.age = 21
Tom.say_hello = say_hello

print(Tom.age)
Tom.say_hello

2. 对象的初始化

大部分面向对象的编程语言都会有一个构造函数的特殊方法,用于创建对象的时候初始化对象。Python却不太一样,Python有两个这样的函数,一个是初始化函数,一个是构造函数,正常情况下,构造函数几乎不会用到。

所以重点学习初始化函数,初始化函数其实也很简单,名字比较特别,__init__

import math

class Point:
    def __init__(self, x = 0, y = 0):
        self.move(x, y)
        
    def move(self, x, y):
        self.x = x
        self.y = y

    def reset(self):
        self.x = 0
        self.y = 0

    def calculate_distance(self):
        return math.sqrt(self.x ** 2 + self.y ** 2)    

point = Point(3, 4)                

print(point.calculate_distance())

 

3. 对象的私有性

在Python中是不支持私有变量的,但是有一个方式,可以让使客户端不能直接调用该变量:对某个属性加一个双下划线的前缀,这样使得该属性会自动添加上一个_ClassName的前缀。

class SecretString:
    def __init__(self, plain_string):
        self.__plain_string = plain_string

    def get_plain_string(self):
        return self.__plain_string

s = SecretString(hello world)            

print(s.get_plain_string =, s.get_plain_string())

print(s._SecretString.__plain_string =, s._SecretString__plain_string)

print(s.__plain_string)

 

012: class and class objects > 初步了解

标签:

原文地址:http://www.cnblogs.com/jcsz/p/5120002.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!