莫愁前路无知己,天下谁人不识君。。。。
python 小知识3--------构造函数简要
上一篇 /
下一篇 2017-10-27 10:46:44
/ 个人分类:python 小编程
# 关于构造函数(基础应用)
# coding:utf-8
class ca:
def __init__(self, v):
self.name = v
def pre(self):
print 'a---->', self.name
A = ca('xiao')
A.pre() # a----> xiao
ca.pre(A) # a----> xiao 加print 会打印出None
再如:
class A(object):
def __init__(self, name):
self.name = name
def getName(self):
return 'A '+self.name
class B(A):
def getName(self):
return 'B '+self.name
class C(A): 显式的调用超类的__init__方法
def __init__(self,name):
super(C, self).__init__(name)
def getName(self):
return 'C '+self.name
若改成下面这样会报错:
class C(A):
def __init__(self):
pass
def getName(self):
return 'C '+self.name
#不会隐式的再去调用超类中已定义的__init__
if __name__=='__main__':
a = A('hello')
print a.getName()
b = B('hello')
print b.getName()
c = C('hello')
print c.getName()
说明:
__init__()是为了做初始化用的
我们初始化得时候不一定要使用__init__()进行初始化,可以直接定义
比如
class test(self):
test_a = "123"
这里就初始化了一个变量test_a = "123",但这样就太固定
而__init__()的好处在于它可以接收参数并初始化
__init__(self,testa):
test_a = testa
这样类就可以初始化话一个动态的变量,更加灵活
而且直接test("123")就将test_a 初始成123了
# C.py
class a():
def a1(self):
return a11+a22
# D.py
class b():
def b1(self):
return b11+b22
在D中引用C的方法:
import a
x = a().b1()
收藏
举报
TAG:
构造函数引用