#!/usr/bin/python
# Filename: class.py
__metaclass__=type class Person:
def set_name(self,name):
self.name=name
def get_name(self):
return self.name
def set_age(self,age):
self.age=age
def get_age(self):
return self.age
def greet(self):
print ("hello,world!,I'm %s." %self.name)
运行测试结果:
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
>>> lewis=Person()
>>> lc=Person()
>>> zhanglei=Person()
>>> zhanglei.set_name('ZhangLei')
>>> lewis.greet
<bound method Person.greet of <__main__.Person object at 0x02DD8CB0>>
>>> lewis.greet()
hello,world!,I'm Lewis Liu.
>>> zhanglei.greet()
hello,world!,I'm ZhangLei.
>>>
关于类方法中self的说明:(节选自:简明 Python 教程 -----A Byte of Python)
- 类方法与普通函数有一个关键区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值,Python会提供这个值。这个特别的变量指对象本身,按照惯例它的名称是
self
。 - 举例:你现有一个类
MyClass
和该类的一个对象MyObject
。当你调用这个对象的方法MyObject.method(arg1, arg2)
的时候,Python自动转化为MyClass.method(MyObject, arg1, arg2)
——这就是self
的原理了。 - 当类方法没有参数时,你也得给这个方法定义一个
self
参数。