作者zerof (猫橘毛发呆雕像)
看板Python
标题Re: [问题] 如何用比较好的方法处理变数
时间Mon Mar 20 18:16:34 2017
这里有几个问题:
1. class 内的 method 第一个参数为 self (instance 本身),不传 self 的
情况下应该用
@staticmethod 视为静态方式,但多数 staticmethod 会被
改写成 module function.
2. class 的 method 是 statusful 的,这也意味着资料是保存在 instance
里面而不是 global scope ,如果你的资料和 class 有关但又得在所有的
instance 共用的话应该用 class attribute .
3. 除了 staticmethod 外, method 不应该修改外部来的资料再回传,如果
有这样的需求应该将该 method 重构成 staticmethod 或 module function.
依上面三点做修正:
https://repl.it/G3gh/0
※ 引述《jacobcan118 (jacobcan118)》之铭言:
: 我大慨是有三个class
: ====
: from classfunc import funct
: n = { 'a1': 'v1', 'a2': 'v2', 'a3': 'v3', }
: class Classone:
: def testw1():
: n.update(funct(n))
: ====
: from classfunc import funct
: n = { 'k1': 'vk1', 'k2': 'vk2', 'k3': 'vk3', }
: class Classtwo:
: def testw1():
: n.update(funct(n))
: ====
: class Classfunc:
: def funct(input):
: rtn = {}
: rtn['index1'] = input['a3'] + 'index1'
: rtn['index2'] = input['a3'] + 'index2'
: rtn['index3'] = input['a3'] + 'index3'
: return rtn
: 我想在classone里n最後值变成下面
: Classone
: n = { 'a1': 'v1', 'a2': 'v2', 'a3': 'v3','index1': 'v3index1','index2': 'v3index2','index3': 'v3index3'}
: 在classtwo里n最後值垫成下面
: Classtwo
: n = { 'k1': 'vk1', 'k2': 'vk2', 'k3': 'vk3', 'index1': 'vk3index1' 'index2': 'vk3index2' 'index3': 'vk3index3' }
: ※ 引述《jacobcan118 (jacobcan118)》之铭言:
: : 请问一下我有一个dict变数他其中几个index的值必须从一个function处理.我有比较好的方法可以处理吗. 我目前只知道两种方法, 1:先定义好index在原来的变数
: : 从function里传入整个dict找index, 处理好值传回整个dict. 2: 不在原来dict定义index, 直接在function做一个新的dict处理好值传回. 好像两种都不太好有其他写法吗?
: : 1:
: : want = {
: : 'index1': 'val1',
: : 'index2': 'val2',
: : 'index3': 'val3',
: : 'index4': '',
: : 'index5': '',
: : 'index6': '',
: : }
: : want = function(want)
: : 2:
: : want = {
: : 'index1': 'val1',
: : 'index2': 'val2',
: : 'index3': 'val3',
: : }
: : want.update(function())
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 192.19.253.250
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1490004998.A.2AF.html