成员变量

这是一个最近邻的代码:

import numpy as np

class NearestNeighbor(object):
  def __init__(self):
    pass

  def train(self, X, y):
    self.Xtr = X
    self.ytr = y

  def predict(self, X):
    num_test = X.shape[0]
    Ypred = np.zeros(num_test, dtype = self.ytr.dtype)

    for i in xrange(num_test):
      distances = np.sum(np.abs(self.Xtr - X[i,:]), axis = 1)
      min_index = np.argmin(distances) 
      Ypred[i] = self.ytr[min_index]

    return Ypred

这里self.Xtr是属性(成员变量),整个类中所有的函数都可以调用,因为他是属于类的。

如果去掉self,只有Xtr,这时候就是局部变量,这个只属于train整个函数。

 

class people:
    __name = 'jack'                 这是类属性。这种没有经过__init__函数的属性,就不需要实例化时输入参数。
    __age = 12

    def getName(self):
        return self.__name
    def getAge(self):
        return self.__age

p = people()                         对象进行实例化了
print p.getName(),p.getAge()

 

class peo:
    def __init__(self,name,age,sex):
        self.Name = name
        self.Age = age
        self.Sex = sex
    def speak(self):
        print "my name" + self.Name
    def __str__(self):
        msg='my name is: ' +self.Name+ ","+ "my age is: " + self.Age +','+ "my sex is:" +self.Sex
        return msg
shanghai=peo('shanghai','23','man')

 

 

posted @ 2017-03-02 22:36  有梦就要去实现他  阅读(830)  评论(0编辑  收藏  举报