本文目录一览:
- 1、python 为什么装入库后调用时仍然显示没有这个库
- 2、在调用一些Python里的函数的时候 为什么有些函数需要实例化有些不需要?
- 3、为什么Python调用方法,有的前面加类名,有的不加?
- 4、Python 使用类直接调用方法的时候 要忽略第一个参数吗?
- 5、shell脚本里怎样在调用python时传参数
- 6、java调用python时传递的参数问题?
python 为什么装入库后调用时仍然显示没有这个库
检查是否装入pip list
用pip install –upgrade 包名 进行更新
确定安装到了正确的Python版本上
找到python的路径后找到自己安装的库位置,复制路径,在你的程序前写入import sys sys.path.append(路径)
我的路径是C:\Program Files\Python310\Lib\site-packages
在调用一些Python里的函数的时候 为什么有些函数需要实例化有些不需要?
如果一个方法是静态方法或类方法,那么,可以直接调用。
如果一个方法不是静态的,那么,它会需要self来访问实例中的某些属性,那么就只能在实例上调用。
你给出的代码中,tensor_trans = transforms.ToTensor()这一句,实际上只是简化引用,并没有实例化transforms。
作为示例:
class MyUtil(object):
….@staticmethod
….def fn1():
……..return ‘a’
….def fn2(self):
……..return ‘b’
对方法fn1,我们可以直接调用:
x = MyUtil.fn1()
但对于fn2,则只能实例化后调用:
util=MyUtil()
x = util.fn2()
当然,对于fn1,也可以在实例上调用:
util=MyUtil()
x = util.fn1()
为什么Python调用方法,有的前面加类名,有的不加?
答: Python使用面向对象的方法进行编程时,确实有两种调用方法。第一,当被调用的方法是静态方法,那么这个时候无须实例化对象,直接按照类名.函数名格式即可,如math.sin(),在该函数的底层实现当中,使用了@staticmethod声明静态方法,我的理解是这样的,当某个方法经常被使用时,把它声明成静态方法会方便一些;第二,当被调用方法是非静态方法时,则必须先实例化一个对象,再进行方法调用。希望能够帮助到你。
例子
Python 使用类直接调用方法的时候 要忽略第一个参数吗?
一般情况下,第一个参数是self,调用时不需要传递。
使用装饰器@staticmethod修饰的方法,第一个参数不是self,因此调用时不能忽略第一个参数:
class MyTool(object):
def max_list_1(self, nums):
”’这个方法有两个参数,但调用时不需要传第一个参数”’
i_max = None
for i in range(len(nums)):
if i_max is None:
i_max = i
elif len(nums[i_max]) len(nums[i]):
i_max = i
return i_max
@staticmethod
def max_list_2(nums):
”’这个方法只有一个参数”’
i_max = None
for i in range(len(nums)):
if i_max is None:
i_max = i
elif len(nums[i_max]) len(nums[i]):
i_max = i
return i_max
data = [[1,2,3,4,5],
[‘a’,’b’,’c’,’d’,’e’,’r’,’t’],
[9999],]
tool= MyTool()
print(tool.max_list_1(data))
print(tool.max_list_2(data))
shell脚本里怎样在调用python时传参数
Python 可以利用 sys.argv 拿到命令列上的 arguments:
$ python test.py 1 2 3
test.py:
import sys
print(sys.argv)
结果:
[‘test.py’, ‘1’, ‘2’, ‘3’]
所以你在 build_using_xctool.sh 中可以这样调度 python:
python /Users/gyd/Desktop/auto_send_email.py subject msg toaddrs fromaddr smtpaddr password
然後在 auto_send_email.py 中:
import sys # 自己 import sys…if __name__ == ‘__main__’:
sendmail(*sys.argv[1:])
java调用python时传递的参数问题?
需要用到需要用到jython.jar
java example:
public static void main(String[] args) {
//定义参数
String[] args2 = {“arg1″,”arg2”};
//设置参数
PythonInterpreter.initialize(null, null, args2);
PythonInterpreter interpreter = new PythonInterpreter();
//执行
interpreter.execfile(“E:\\jython.py”);
System.out.println(“———-run over!———-“);
}
python的程序:
#!/bin/env python
import time
import sys
argCount = len(sys.argv)
print(‘before sleep’)
time.sleep(5);
print(‘after sleep’)
for str in sys.argv:
print(str)
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/292978.html