Не имеет значения, импортируете ли вы только одну функцию из модуля или импортируете весь модуль целиком, весь модуль всегда импортируется в sys.modules
. Итак, в вашем случае вам нужно будет проверить импортированный модуль вместо функции:
'shapely.geometry' in sys.modules
Изучите этот список «модуль импорта» против «из функции импорта модуля» [112 ].
Это еще легче, чем использование статистики () и время ()/localtime ().
my $diff = -M $filename;
-M оператор возвращает "возраст" файла (в течение многих дней начиная с запуска программы). Это документируется под функциями-X или в perldoc -f -X
.
Если Вы хотите сравнить значения, Вы могли бы хотеть использовать число, от которого Вы добрались localtime
в скалярном контексте и время изменения inode, когда можно добраться от stat
:
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
$atime,$mtime,$ctime,$blksize,$blocks)
= stat($filename);
где:
0 dev device number of filesystem 1 ino inode number 2 mode file mode (type and permissions) 3 nlink number of (hard) links to the file 4 uid numeric user ID of file's owner 5 gid numeric group ID of file's owner 6 rdev the device identifier (special files only) 7 size total size of file, in bytes 8 atime last access time in seconds since the epoch 9 mtime last modify time in seconds since the epoch 10 ctime inode change time in seconds since the epoch (*) 11 blksize preferred block size for file system I/O 12 blocks actual number of blocks allocated
Таким образом, Вы хотите поле 9:
$mtime = ( stat $filename )[9];
$current_time = time;
$diff = $current_time - $mtime;
localtime
возвращает список значений в контексте списка. См. localtime документацию или perlcheat. В Вашем примере это похоже на те все mushed вместе. В скалярном контексте это возвращает отформатированную строку как Mon Dec 29 03:16:33 2008
. На большинстве платформ файл inode время изменения будет возвращен из stat
как много секунд с некоторой эпохи. Необходимо смочь непосредственно сравнить это с результатом time()
(нет localtime()
).