函数和方法的区别「建议收藏」(Excel函数公式大全)
生活随笔
收集整理的這篇文章主要介紹了
函数和方法的区别「建议收藏」(Excel函数公式大全)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
函數和方法的區別
1、函數要手動傳self,方法不用傳 2、如果是一個函數,用類名去調用,如果是一個額方法,用對象去調用
相關示例
class Foo(object):
def __init__(self):
self.name="haiyan"
def func(self):
print(self.name)
obj = Foo()
obj.func()
Foo.func(obj)
View Code
判斷函數和方法的方式
from types import FunctionType,MethodType obj = Foo() print(isinstance(obj.func,FunctionType)) #False print(isinstance(obj.func,MethodType)) #True #說明這是一個方法 print(isinstance(Foo.func,FunctionType)) #True #說明這是一個函數。 print(isinstance(Foo.func,MethodType)) #False
View Code
js和jquery綁定事件的幾種方式
三、創建表的一個limit_choices_to參數
limit_choices_to:屏蔽某些選項,只顯示某些指定的選項。例如下面的,只讓顯示部門id是1001的
consultant = models.ForeignKey(verbose_name="課程顧問", to='UserInfo', related_name='consultant',limit_choices_to={'depart_id':1001})
四、include和inclusion_tag的區別
這兩個都是處理代碼冗余的,由于其他的頁面也會有這樣的功能,也要用到,我們可以吧它摘出來,在創建個文件夾寫進去。導入進來
如果用include,這里面的數據得從后端傳, 如果用inclusion_tag,你返回啥就會幫我們傳啥,它既有自己的功能,也有include的功能,又可以處理數據
include的使用
<body>
<h3>添加頁面</h3>
{% include "stark/form.html" %}
{#<form action="">#}
{# {{ form }}#}
{#</form>#}
#include導入的相當于下面注釋的form表單的內容
inclusion_tag的使用
1、創建一個templatetags的文件夾,在里面創建一個change_form.py的文件,在里面寫代碼,需要加上
@register.inclusion_tag這個裝飾器
#!usr/bin/env python
# -*- coding:utf-8 -*-
from django.template import Library
from django.urls import reverse
from stark.service.v1 import site
register = Library()
@register.inclusion_tag("stark/form.html")
def form(model_form_obj):
from django.forms import ModelChoiceField
from django.forms.boundfield import BoundField # 數據都封裝在這個類了
new_form = []
for bfield in model_form_obj:
dic = {"is_popup": False, "item": bfield} # 每一個bfield就是Form的字段,是一個對象
if isinstance(bfield.field, ModelChoiceField):
# print(bfield.field,"popup按鈕")
print(bfield, type(bfield)) # <class 'django.forms.boundfield.BoundField'>
releated_model_name = bfield.field.queryset.model # 找到關聯的類名
app_model_name = releated_model_name._meta.app_label, releated_model_name._meta.model_name # 找到應用名和類名(目的是拼接url)
base_url = reverse("stark:%s_%s_add" % (app_model_name))
popup_url = "%s?_popupbackid=%s" % (base_url, bfield.auto_id) #每一個input框的id
print(bfield.auto_id,"111111")
dic["is_popup"] = True
dic["popup_url"] = popup_url
new_form.append(dic)
return {"form":new_form} #返回的這個form是給了"stark/form.html"它里面的form,然后循環遍歷
3、使用
{% load change_form %}
<body>
<h3>編輯頁面</h3>
{% form form %}
</body>
4、stark/form.html
<form method="post" class="form-horizontal" novalidate>
{% csrf_token %}
{% for dic in form %}
<div class="col-sm-6">
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">{{ dic.item.label }}</label>
<div class="col-sm-10">
{{ dic.item }}
{% if dic.is_popup %}
<div>
<a onclick="popUp('{{ dic.popup_url }}')" class="glyphicon glyphicon-plus"></a> <!--注意要加引號,不然就會被當成變量了-->
</div>
{# 判斷如果是MOdelChoicesField是Fk#}
{# 判斷如果是MOdelChoicesField是Fk#}
{% endif %}
{{ dic.item.errors.0 }}
</div>
</div>
</div>
{% endfor %}
<div class="col-sm-offset-11 col-sm-1">
<input type="submit" class="btn btn-primary" value="提交">
</div>
</form>
<script>
function popupCallback(data) {
var op = document.createElement("option");
op.value = data.id;
op.text = data.text;
op.setAttribute("selected","selected");
document.getElementById(data.popupbackid).appendChild(op)
}
function popUp(url) {
var popupPage = window.open(url, url, "status=1, height:500, width:600, toolbar=0, resizeable=0");
}
</script>
View Code
總結
以上是生活随笔為你收集整理的函数和方法的区别「建议收藏」(Excel函数公式大全)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文献记录(part90)--A nove
- 下一篇: 苹果max可以用两个微信吗