class FooClass(object):
version = 0.1
def __init__(self, nm='John Doe'):
self.name = nm
print 'Created a class instance for', nm
def showname(self):
print'Your name is', self.name
print 'My name is', self.__class__.__name__
def shower(self):
print self.version
def addMe2Me(self, x):
return x+x
在学习Python,创建FooClass这个类的实例有几个问题:
1. 为什么参数是一个object
2. 如果通过如下代码创建给一个实例:
ddd = FooClass('dhl')
那么使用showname() 这个方法会显示:
ddd.showname()
Your name is dhl
My name is FooClass
而不传入参数的情况下,使用showname()这个方法会显示:
dhl = FooClass()
dhl.showname()
Your name is John Doe
My name is FooClass
object 这个创建时候的参数是通过什么机制,传递给实例的name属性的?
先谢谢了!
The class definition brackets are not parameters, but the parent class
Theconstructor is
__init__
, exposing a parameternm
, and it has a default valueJohn Doe
So
FooClass('dhl')
actually calledAs for the first parameter self defined in each function in the class, it is used to expose
this指针
to the inside of the function body and is not exposed to the caller