是否可以获取模块内顶级代码的代码对象?例如,如果你有一个像这样的 python 文件:
myvar = 1
print('hello from top level')
def myfunction():
print('hello from function')
Run Code Online (Sandbox Code Playgroud)
并且您想要访问 的代码对象myfunction,那么您可以使用myfunction.__code__. 例如,myfunction.__code__.co_consts将包含字符串'hello from function'等...
有没有办法获取顶级代码的代码对象?也就是说,对于代码:
myvar = 1
print('hello from top level')
def myfunction():
print('hello from function')
Run Code Online (Sandbox Code Playgroud)
我想要类似的东西__main__.__code__.co_consts包含'hello from top level',但我找不到任何方法来得到这个。这样的事情存在吗?
许多在线python示例显示了在每行之前具有正常前导">>>"和"..."字符的交互式python会话.
通常,如果不获取这些前缀,则无法复制此代码.
在这些情况下,如果我想在复制后将此代码重新粘贴到我自己的python解释器中,我必须做一些工作来首先剥离这些前缀.
有没有人知道如何让python或iPython(或任何其他python解释器)自动忽略粘贴的行上的前导">>>"和"..."字符?
例:
>>> if True:
... print("x")
...
Run Code Online (Sandbox Code Playgroud) 我正在尝试运行以下代码,该代码报告与其他用户一起运行良好,但我发现了此错误。
import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils import data
from torch.utils.data import DataLoader
import torchvision.transforms as transforms
import cv2
import numpy as np
import csv
Run Code Online (Sandbox Code Playgroud)
samples = []
with open('data/driving_log.csv') as csvfile:
reader = csv.reader(csvfile)
next(reader, None)
for line in reader:
samples.append(line)
Run Code Online (Sandbox Code Playgroud)
train_len = int(0.8*len(samples))
valid_len = len(samples) - train_len
train_samples, validation_samples = data.random_split(samples, lengths=[train_len, valid_len])
Run Code Online (Sandbox Code Playgroud)
def augment(imgName, angle):
name = 'data/IMG/' + imgName.split('/')[-1]
current_image = cv2.imread(name)
current_image …Run Code Online (Sandbox Code Playgroud) 我目前正在学习 Python,我只是想知道在什么情况下会使用.remove()而不是.discard()从set. 因为.discard()如果元素不存在,则从集合中删除元素时不会引发错误,那么使用它不是更好吗?
请问在函数内部使用时func()在python中是什么意思,例如在下面的代码中.
def identity_decorator(func):
def wrapper():
func()
return wrapper
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 来加速一些代码numba,但这很难。例如,以下函数不使用 numba-fy,
@jit(nopython=True)
def returns(Ft, x, delta):
T = len(x)
rets = Ft[0:T - 1] * x[1:T] - delta * np.abs(Ft[1:T] - Ft[0:T - 1])
return np.concatenate([[0], rets])
Run Code Online (Sandbox Code Playgroud)
因为 numba 找不到 的签名np.concatenate。对此有规范的修复吗?
我知道super用于调用超类中的init方法,我在理解什么kwargs知道需要关键参数时遇到了麻烦
它在这里做什么?
class LoginScreen(GridLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.cols = 2
self.add_widget(Label(text = "Username: "))
self.username = TextInput(multiline = False)
self.add_widget(self.username)
self.add_widget(Label(text="Password: "))
self.username = TextInput(multiline=False, password=True)
self.add_widget(self.username)
self.add_widget(Label(text="Two Factor Auth: "))
self.tffa = TextInput(multiline=False, password=True)
self.add_widget(self.tffa)
Run Code Online (Sandbox Code Playgroud) 我正在尝试将函数从任意“基”类复制到新对象中。但是,此示例代码出现以下错误。
class my_base:
def print_hey():
print("HEY")
def get_one():
print(1)
class my_ext:
def __init__(self, base):
methods = [method for method in dir(base) if callable(getattr(base, method))]
for method in methods:
setattr(self, method, getattr(base, method))
me = my_ext(my_base)
me.get_one()
Run Code Online (Sandbox Code Playgroud)
上面在调用时出现此错误setattr。
TypeError: __class__ assignment only supported for heap types or ModuleType subclasses
Run Code Online (Sandbox Code Playgroud)
如果在定义以上内容后在提示中键入该语句,则该语句有效。
我是 Python 的新手,真的可以在这方面使用一些帮助。我想创建一个函数来过滤我想要打开的文件以及具体的月份和日期。这样,用户需要输入他们想要在哪个特定月份或日期分析哪个城市(文件)。但是,我希望用户能够输入不区分大小写的内容。例如,用户可以输入 'chicago'/'CHICAGO"/"ChIcAgO" 并且它仍然为您提供正确的输出而不是错误处理消息。这是我使用的代码:
def get_filters ():
city_options = ['Chicago','New York City','Washington']
month_options = ['January','February','March','April','May','June','All']
day_options = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday','All']
while True:
try:
city = city_options.index(input('\nInsert name of the city to analyze! (Chicago, New York City, Washington)\n'))
month = month_options.index(input('\nInsert month to filter by or "All" to apply no month filter! (January, February, etc.)\n'))
day = day_options.index(input('\nInsert day of the week to filter by or "All" to apply no day filter! (Monday, Tuesday, etc.)\n'))
return city_options[city].lower(), month_options[month].lower(), day_options[day].lower()
except ValueError:
print …Run Code Online (Sandbox Code Playgroud) 文本文件包含:
Matt 25
Matt 22
John 1
John 2
John 5
Run Code Online (Sandbox Code Playgroud)
我试图用这个计算他们的总分,但现在它只是将数字加到值上,而不是求和:
filename = input("Enter the name of the score file: ")
file = open(filename, mode="r")
print("Contestant score:")
score = dict()
for file_line in sorted(file):
file_line = file_line.split()
if file_line[0] in score:
score[file_line[0]] += file_line[1]
else:
score[file_line[0]] = file_line[1]
print(score)
file.close()
Run Code Online (Sandbox Code Playgroud)
但打印是: {'Matt': '2525', 'John': '125'}
而不是:{'马特':'50','约翰':'8'}
理想情况下,我的数据框如下所示:-
| 编号 | 名称 |
|---|---|
| 1 | 南达·戈文德·加杰雷 |
| 2 | 深马拉·莫汉·辛德 |
| 3 | 乔蒂·达科雷 |
| 4 | 索纳瓦·阿沙南德夫 |
| 5 | 维马尔·比卡吉·拉托德 |
| 6 | 阿尚·达塔劳·卡丹 |
“姓名”列是名字、中间名和姓氏的组合
在这里,我希望每个单词的第一个字母大写,其余字母小写。
我的输出
| 编号 | 名称 |
|---|---|
| 1 | 南达·戈文德·加杰雷 |
| 2 | 迪普玛拉·莫汉·辛德 |
| 3 | 乔蒂·达科雷 |
| 4 | 索纳瓦·阿沙南德夫 |
| 5 | 维马尔·比卡吉·拉托德 |
| 6 | 阿占·达塔劳·卡丹 |
例子
df = {"Names" : ["Nanda Govind Gajre", "deepmala mohan shinde",
"jyoti dakore", "Sonavane Ashanamdev",
"VIMAL BHIKAJI RATHOD", "ARCHAN DATTARAO KADAM",
"KANTA VITTHALRAO TOKALWAD"]}
Run Code Online (Sandbox Code Playgroud) 我想将单个函数应用于数据框列。该函数返回多个结果,我想转到原始数据框中的多个列。我似乎无法解决“太多值无法解压”错误......
df = pd.DataFrame(data={'x': [1,2,3,4]})
x
0 1
1 2
2 3
3 4
Run Code Online (Sandbox Code Playgroud)
我想应用的功能:
def do_math(x):
double = 2*x
triple = 3*x
return double, triple
Run Code Online (Sandbox Code Playgroud)
我尝试应用它(这不起作用):
df['DOUBLE'], df['TRIPLE'] = df['x'].apply(do_math)
Run Code Online (Sandbox Code Playgroud)
我想要的是 :
x DOUBLE TRIPLE
0 1 2 3
1 2 4 6
2 3 6 9
3 4 8 12
Run Code Online (Sandbox Code Playgroud) import pymysql\n\nconn = pymysql.connect(host=\'127.0.0.1\', port=3306, user=\'root\',\n passwd=\'123456\',db=\'home\', charset="utf-8")\n\ncursor = conn.cursor()\ncursor.execute("""create table job_list(job varchar(30) , people varchar(30) , catagory varchar(30) , place varchar(30), publish varchar(30)) """)\n\ntry:\n cursor.execute("""INSERT INTO job_list(job,people,catagory,place,publish) VALUES (%s, %s, %s, %s, %s)""",\n ["\xe7\xae\x97\xe6\xb3\x95\xe5\xb7\xa5\xe7\xa8\x8b\xe5\xb8\x88", "2018\xe6\xaf\x95\xe4\xb8\x9a\xe7\x94\x9f", "\xe7\xa0\x94\xe5\x8f\x91", "\xe9\x9b\x85\xe5\x8a\xa0\xe8\xbe\xbe", "2018-03-28"])\n conn.commit()\nexcept pymysql.Error as e:\n print(e)\n\ncursor.close()\nconn.close()\nRun Code Online (Sandbox Code Playgroud)\n\n\n python ×12
pandas ×2
dataframe ×1
interpreter ×1
ipython ×1
numba ×1
numpy ×1
operation ×1
pasting ×1
pymysql ×1
python-2.7 ×1
python-3.x ×1
set ×1
setattr ×1
toplevel ×1
torchvision ×1
uppercase ×1
user-input ×1