您的位置:首页 > 其它

[py]tornado form表单逻辑前戏

2017-08-29 18:13 155 查看

self的传递

怎么把一个类的属性传递给另一个属性?

下游的传递给上游的去执行,执行后返回结果供我来判断.

相当于一些功能交出去做,做了后返回状态给我.

第一种形式

class MainForm(object):

def check_valid(self,request):
print(request.name)

class MainHandler():
def __init__(self):
self.name = "maotai"

def post(self):
obj = MainForm()
rest = obj.check_valid(self)

m = MainHandler()
m.post()




第二种形式

#!/usr/bin/env python
# coding=utf-8

class Fu:
def fushow(self, request):
print(request.name)

class Zi(Fu):
pass

class C:
def __init__(self):
self.name = "maotai..."

def post(self):
z = Zi()
z.fushow(self)

c = C()
c.post()




#!/usr/bin/env python
# coding=utf-8

class Fu:
def fushow(self, request):
print(request.name)  ## 访问C类字段
request.cshow()      ## 调用C类方法

class Zi(Fu):
pass

class C:
def __init__(self):
self.name = "maotai..."

def cshow(self):
print("c showing...")

def post(self):
z = Zi()
z.fushow(self)

c = C()
c.post()


仅打印子类对象的属性

class Fu():
def __init__(self):
self.fname = "fu name"

class Zi(Fu):
def __init__(self):
self.zname="zi name"

z = Zi()
print(z.__dict__.items())
## dict_items([('zname', 'zi name')])


继承了父类,相当于把父类的方法拿到子类来运行



self的传递条件

class Fu():
def check(self,request):
for k,v in self.__dict__.items():
print(k,v)

class Zi(Fu):
def __init__(self):
self.zname="ziname"

class C():
def post(self):
z= Zi()
z.check(self)  ## slef=Zi()的实例,但是这里self的传递必须依赖写在post方法里

c = C()
c.post()
## zname ziname


如果传值了,优先使用传递的值,如果未传值,使用默认的

def show(name="maotai"):
print(name)

show()
show("maming")
# maotai
# maming
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: