我希望能够在Django的内置用户模块中使用创建用户的日期.
有没有办法访问它或我必须添加它?
我有一个perl mason文件,其中一行看起来像这样:
$result = PI::Membership::Service->cancel(name => $name)
Run Code Online (Sandbox Code Playgroud)
这到底是什么意思呢?它是在调用另一个模块吗?它是面向对象的perl代码吗?
谢谢
我有一个包含许多不同类的单个模块(分成单独的文件).每个类都有相同的集合attr_accessor,那么如何重用它而不必重复attr_accessor块?
我现在在做什么......
# dog.rb
module Animals
class Dog
attr_accessor :name, :color, :age
end
end
# cat.rb
module Animals
class Cat
attr_accessor :name, :color, :age
end
end
# rodent.rb
module Animals
class Rodent
attr_accessor :name, :color, :age
end
end
Run Code Online (Sandbox Code Playgroud)
我试着这样做没有运气......
# animals.rb
module Animals
attr_accessor :name, :color, :age
end
Run Code Online (Sandbox Code Playgroud)
我需要直接在我的应用程序中访问这些模块(这是一个Rails应用程序).例如:Animals::Dog.give_water
我想知道为什么以下代码显然不会垃圾收集那些应该不再引用的匿名模块(未扩展/包含,未命名,包含设置为nil的数组)。
如果有人能用相对简单/通用的编程语言来澄清幕后的状况,我将不胜感激。是否有一种特殊的红宝石方法可以实现这一目标?匿名模块/类不能被垃圾回收吗?还是我只是被我得到的内存统计数据误导了?
注意:我使用的是Ruby 1.9.3;不知道ruby 2.x是否会改变任何东西...注2:无论模块是否定义foo方法,结果都是相同的
提前致谢。
puts("INITIAL OBJECT SPACE OBJECTS : #{ObjectSpace.count_objects}")
i = 100000
ms = []
i.times do
ms << Module.new do
def foo()
puts('foo method called')
end
end
end
puts("#{i} MODULES CREATED")
puts("OBJECT SPACE OBJECTS : #{ObjectSpace.count_objects}")
ms = nil
ObjectSpace.garbage_collect
puts("#{i} MODULES GARBAGE COLLECTED")
puts("WAITING TO END PROGRAM")
stop = gets
puts("FINAL OBJECT SPACE OBJECTS : #{ObjectSpace.count_objects}")
Run Code Online (Sandbox Code Playgroud)
我说“显然不会进行垃圾回收”,因为我的OS任务管理器没有显示进程中内存使用的任何减少,并且调用ObjectSpace.count_objects会产生以下内容,我读错了(是吗?)为:没有内存您模块使用的模块尚未释放。
初始对象空间对象:{:TOTAL => 14730,:FREE => 251,:T_OBJECT => 8,:T_CLASS => 542,:T_MODULE => 21,:T_FLOAT => 7,:T_STRING => 6349,:T_REGEXP => 24,:T_ARRAY => …
我试图从子模块初始化父模块具有以下结构:
$ cat caller.py
#!/usr/bin/env
import child
$ cat parent.py
class parent(object):
def __init__(self):
print "initialised parent"
$ cat child.py
import parent
class child(parent):
def __init__(self):
print "initialised child"
Run Code Online (Sandbox Code Playgroud)
但是我得到以下错误:
Traceback (most recent call last):
File "caller.py", line 3, in <module>
import child
File "child.py", line 2, in <module>
class child(parent):
TypeError: Error when calling the metaclass bases
module.__init__() takes at most 2 arguments (3 given)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我想'动态地'导入'.
我知道__import__()在后台导入Python调用,例如:
import foo
Run Code Online (Sandbox Code Playgroud)
相当于
foo = __import__('foo', globals(), locals(), [], -1)
Run Code Online (Sandbox Code Playgroud)
import foo as bar打电话__import__()怎么样?
我还在玩lua模块,我发现了以下"有趣"的问题,这取决于你在模块中创建方法/函数的方式.请注意名为test_suite.lua的文件中的以下代码:
local mtests = {} -- public interface
function mtests:create_widget(arg1)
print(arg1)
-- does something
assert(condition)
print("TEST PASSED")
end
return mtests
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,无论我在调用create_widget()时传入什么,arg1总是为nil.但是,如果我将函数的定义更改为如下所示:
function mtests.create_widget(arg1) -- notice the period instead of colon
print(arg1)
-- does something
assert(condition)
print("TEST PASSED")
end
Run Code Online (Sandbox Code Playgroud)
然后,系统正确显示arg1.
这就是我调用方法的方法:
execute_test.lua
local x = require "test_suite"
x.create_widget(widgetname)
Run Code Online (Sandbox Code Playgroud)
你能告诉我有什么区别吗?我一直在阅读:http://lua-users.org/wiki/ModuleDefinition
但我没有遇到过任何可以解释这个问题的事.谢谢.
我在另一个内部使用python模块时遇到问题.用例如下:
请考虑以下情形.相应地评论了该错误.
在文件A.py中:
import B
...
...
Run Code Online (Sandbox Code Playgroud)
在文件B.py中:
import C
import A
c_func = C.func1() # works perfectly
a_func = A.func2() # Error: 'module' object has no attribute 'func2'
...
...
Run Code Online (Sandbox Code Playgroud)
在文件C.py中:
...
...
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?提前致谢.
我有一个模块A::B::C::D::E.在模块中我定义了一些常量:
use constant {
PERSON => 'person',
EMPLOYEE => 'employees',
};
Run Code Online (Sandbox Code Playgroud)
我做:
our @EXPORT_OK qw / PERSON EMPLOYEE /;
Run Code Online (Sandbox Code Playgroud)
我use在另一个脚本中的模块和常量工作,如果我这样做:
A::B::C::D::E::PERSON
Run Code Online (Sandbox Code Playgroud)
我怎样才能使用PERSON而不必包含完整的模块名称?我PERSON在我的脚本中导入但它不起作用.
我正在编写生成框图的编程代码.我正在尝试将我的代码拆分为模块(函数).第一个模块生成框图.其他模块要求输入块的名称并将其保存为字符串(行),但它不允许将这些字符串导出到其他模块(我想将这些字符串导出为变量并在其他模块中使用块的名称).可能有什么问题?也许有人已经发现同样的问题,并有解决方案?先感谢您!Input.hs代码:
module Input (firstName, secondName, thirdName, fourthName) where
import Data.Char
main = do
putStrLn "Iveskite pirmo bloko pavadinima"
firstName <- getLine
putStrLn "Iveskite antro bloko pavadinima"
secondName <- getLine
putStrLn "Iveskite trecio bloko pavadinima"
thirdName <- getLine
putStrLn "Iveskite ketvirto bloko pavadinima"
fourthName <- getLine
Run Code Online (Sandbox Code Playgroud) module ×10
python ×3
class ×2
perl ×2
ruby ×2
attributes ×1
constants ×1
django ×1
haskell ×1
import ×1
io ×1
lua ×1
mason ×1
parent-child ×1
perl-module ×1