我开始在大型代码库中实现类型提示,该代码库由多个开发人员进行工作,以提高函数应作为参数的透明度。
我还想验证传递给函数的参数是否为正确的类型。
这在函数内部很容易做到,但这似乎不是pythonic。我想制作一个可以从函数传递args和类型的实用程序,如果为对应的arg传递了错误的类型,则会引发异常。
例:
def find_integer_sum(a: int, b: int):
utility.validate_args(args, types)
return a + b
Run Code Online (Sandbox Code Playgroud)
我想要的是以某种方式将args和类型传递给函数,而无需始终手动插入,utility.validate_args({a: int, b: int})因为这样会很麻烦。
有没有一种方法可以使用其类型提示访问args?
需要一些帮助,我从左侧字段中得到一个奇怪的错误,我无法调试.在我在另一台Mac上设置我的react本机项目后,这个项目成功捆绑到昨天.
我想知道它是否来自npm软件包的版本我必须重新安装.
任何方向都会有所帮助,它始终是最难设置的,因为你很少这么做...
我的babelrc文件如下 -
{
"presets": ["babel-preset-expo"],
"env": {
"development": {
"plugins": ["transform-react-jsx-source"]
}
}
}
Run Code Online (Sandbox Code Playgroud)
还有我的package.json
{
"name": "hancho_frontend",
"version": "0.1.0",
"private": true,
"devDependencies": {
"jest-expo": "~27.0.0",
"react-native-scripts": "^1.14.1",
"react-test-renderer": "16.3.1"
},
"main": "./node_modules/react-native-scripts/build/bin/crna-entry.js",
"scripts": {
"start": "react-native-scripts start",
"eject": "react-native-scripts eject",
"android": "react-native-scripts android",
"ios": "react-native-scripts ios",
"test": "jest"
},
"jest": {
"preset": "jest-expo"
},
"dependencies": {
"@expo/vector-icons": "^6.2.0",
"axios": "^0.18.0",
"babel-core": "^6.26.3",
"babel-loader": "^7.1.4",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1",
"babel-upgrade": "0.0.19",
"color": "^2.0.0",
"expo": "^27.1.0",
"hoist-non-react-statics": "^2.3.0", …Run Code Online (Sandbox Code Playgroud) 做一个 ruby 问题,心里想,一定有更简单的方法。
我想将指定索引处的数组拆分为两个子数组。第一个子数组包含指定索引之前的数字,第二个子数组包含指定索引之后并包含指定索引的数字。
例子
([2, 1, 2, 2, 2],2) => [2,1] [2,2,2]
#here, the specified index is two, so the first array is index 0 and 1,
the second is index 2, 3, and 4.
def array_split(arr,i)
arr1 = []
arr2 = []
x = 0
while x < arr.count
x < i ? arr1 << arr[x] : arr2 << arr[x]
x += 1
end
return arr1, arr2
end
Run Code Online (Sandbox Code Playgroud)
这对于 while 循环来说不是问题。我想知道是否有更简单的解决方案。
全新的 React Bootstrap,我一直在尝试为组件添加一些自定义样式。
我能够通过使用 chrome 检查器查找类名来从 Nav 中删除边框半径,但是我无法为我的 NavItems 添加悬停效果。
这是我的组件。
<Navbar inverse collapseOnSelect className="nav-bar">
<Navbar.Header>
<Navbar.Brand>
<a href="#">efrt</a>
</Navbar.Brand>
<Navbar.Toggle />
</Navbar.Header>
<Navbar.Collapse>
<Nav>
<NavItem eventKey={1} href="#">Features</NavItem>
<NavItem eventKey={2} href="#">Who we Are</NavItem>
</Nav>
<Navbar.Form pullRight>
<UniversalButton style="primary" name='Login' />
</Navbar.Form>
<Nav pullRight>
<NavDropdown eventKey={3} title="Signup" id="basic-nav-dropdown">
<MenuItem eventKey={3.3}>Member</MenuItem>
<MenuItem divider />
<MenuItem eventKey={3.3}>Coach</MenuItem>
</NavDropdown>
</Nav>
</Navbar.Collapse>
</Navbar>
Run Code Online (Sandbox Code Playgroud)
从 Chrome 检查器复制,我得到以下作为我想要进行更改的类/元素
.navbar-inverse .navbar-nav>li>a {
color: #9d9d9d;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试以下操作时,没有任何反应。我尝试添加自定义类名也没有效果。
.navbar-inverse.navbar-nav>li>a:hover {
background: grey;
}
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏:)!
类,它们的方法,它们的变量等对我来说都是一个非常新的概念,也是我难以完全掌握的东西.
我在教自己Ruby,这个话题令人沮丧,所以我决定以不同的方式看待事物.
我意识到我从第一天起就一直在使用类,实例变量和实例方法.
例
**字符串 - 类
"嗨,我的名字是...." - String类的实例.
.length - 我可以在上面的实例上调用的String类的实例方法.
"Hi my name is....".length => 17
Run Code Online (Sandbox Code Playgroud)
我可以创造
x = String.new("Hi")
Run Code Online (Sandbox Code Playgroud)
但我也可以创造
x = "Hi"
Run Code Online (Sandbox Code Playgroud)
两者都是一样的
如果我创建了一个猫类
class Cat
attr_reader :name
def initialize(name)
@name = name
end
end
jinx = Cat.new("Jinx")
print jinx.name => Jinx
Run Code Online (Sandbox Code Playgroud)
我们在这里
猫级
"Jinx" - Cat类的实例.
.name - Cat类的实例方法.
两个问题
这是查看课程的好方法吗?当我遇到更大的问题,比如创建一个有多个课程的tic tac toe游戏(我现在正在做的)时,我觉得有时会感到头疼.这令人沮丧,因为我感到愚蠢(也许我应该习惯),但我在这里打败自己.我有一个非常容易的时间进行代码大战并用单一方法解决大量问题.我知道某个地方,如果我能把它与课程联系起来,我会更好地理解.在坚持自学的最佳方式时,是否正在寻找解决方案代码?我没有人要问,我希望保留尽可能多的信息.
第二,Ruby如何知道String是一个字符串,一个数组是一个数组,一个Hash a Hash所以我可以定义那些变量而不是调用.new就像我对Cat一样?它只是语法""用于字符串,[]用于数组,{}用于哈希所以它假定我们正在谈论的是什么?
我很好奇编写查询的最佳方法。
我有一个ID和值表。我想排除ID较低的所有行中val小于val的行。
我正在玩将此表与ID-1上的表自身连接在一起,但这并不是一直都有效。
一些样本数据
CREATE TEMP TABLE new_temp_table (
id integer,
val integer
);
INSERT INTO new_temp_table (id, val)
VALUES (0, 300),
(1, 150),
(2, 100),
(3, 200),
(4, 320),
(5, 120),
(6, 220),
(7, 340);
Run Code Online (Sandbox Code Playgroud)
我想要以下输出。
--- id --- val
--- 0 --- 300
--- 4 --- 320
--- 7 --- 340
Run Code Online (Sandbox Code Playgroud)
任何帮助/方向将不胜感激。
我正在做一个红宝石问题,我的解决方案有效.但是,它不适用于更大的测试用例,因为处理时间太长.
该方法需要两个输入,一个数字数组和一个数字.
目标是找到数组中的前两个数字,其总和是输入中提供的数字.
第一对意味着该对的最高索引低于数组中添加到该数字的任何其他对的最高索引.
示例 - ([10,5,2,3,7,5],10)
答案应该是[3,7],而[5,5]也总和为10,最后5的索引是5,索引7是4,所以[3,7]首先出现.
def sum_pairs(ints, s)
return nil if ints.empty? || ints.nil?
x = ints.combination(2).select {|x, y| x + y == s}
return nil if x.nil? || x.empty?
ints.rindex(x[0][1]) > ints.rindex(x[-1][1]) ? x.last : x.first
end
Run Code Online (Sandbox Code Playgroud)
我的代码适用于除大型数组之外的所有测试用例.
我想知道是否有一个内置的方法来帮助或者我是否需要以不同的方式循环遍历数组.
我一直在为我的最新应用程序构建React组件.我知道我可以重复使用有助于保持代码干净的组件.
我想知道我是否可以重用功能.我知道必须要有办法.
现在我有三个使用密码验证功能的组件.
passwordValidation() {
const length = this.state.password.length;
if (length > 7) return 'success';
else if (length > 4) return 'warning';
else if (length > 0) return 'error';
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个帮助文件--helpers.jsx并添加:
export function passwordValidation() {
const length = this.state.password.length;
if (length > 7) return 'success';
else if (length > 4) return 'warning';
else if (length > 0) return 'error';
}
Run Code Online (Sandbox Code Playgroud)
然后我将它导入我的组件
import { passwordValidation } from '../helpers.jsx'
Run Code Online (Sandbox Code Playgroud)
当我尝试在我的构造函数中绑定"this"时,我不断收到错误"passwordValidation is a function".
如果我在输入标记中调用它,我将"无法读取未定义的属性状态".
只是想看看我哪里出错了.如果我在课堂上定义并添加,一切都有效this.passwordValidation = this.passwordValidation.bind(this).
如果这不是最佳实践,我会回到我正在做的事情,但我假设我应该能够导入函数以使生活更轻松,我的代码更清晰!
我的 DRF 后端遇到了一些小问题。
我正在用某些型号的选择来填充字段。
我对一种模型有外键要求。当我创建模型时,我想将其保存在外部 ID 下。
当我请求模型时,我想要具有选择字段映射到的任何模型。
我能够使用 SerializerMethodField 执行此操作,但是当我尝试创建模型时,我收到 400 错误,因为该块无效。如果我删除 SerializerMethodField,我可以保存,但从请求中获取存储在数据库中的数字。
任何帮助,将不胜感激。
class BlockViewSet(ModelViewSet):
model = apps.get_model('backend', 'Block')
queryset = model.objects.all()
serializer_class = serializers.BlockSerializer
permissions = ('All',)
def create(self, request, format=None):
data = request.data
data['user'] = request.user.id
data['goal'] = WorkoutGoal.objects.get(goal=data['goal']).id
block = serializers.BlockSerializer(data=data, context={'request': request})
if block.is_valid():
new_block = block.save()
return Response({'block': {'name': new_block.name, 'id': new_block.id}}, status=status.HTTP_201_CREATED)
else:
return Response(block.errors, status=status.HTTP_400_BAD_REQUEST)
class WorkoutGoalSerializer(serializers.ModelSerializer):
class Meta:
model = apps.get_model('backend', 'WorkoutGoal')
fields = ('goal',)
goal = serializers.SerializerMethodField(read_only=True, source='get_goal')
def …Run Code Online (Sandbox Code Playgroud) 我想将数组拆分为指定长度的子数组。
我知道 .each_slice 会将一个数组分成等长的子数组,剩下的剩余部分如下:
a = [1,2,3,4,5,6,7,8,9,10]
a.each_slice(3).to_a => [[1,2,3],[4,5,6],[7,8,9],[10]]
Run Code Online (Sandbox Code Playgroud)
但是,假设我想要这样的输出:
=> [[1],[2,3],[4,5,6],[7,8,9,10]]
Run Code Online (Sandbox Code Playgroud)
ruby 中是否有一种方法可以根据您提供的参数将数组切成不同的指定长度?
我在ruby中理解Blocks vs Procs时遇到了麻烦.我得到一个基本的想法,即proc是一个保存为对象的方法,你可以反复调用,而不必一遍又一遍地继续编写相同的代码行.
我的麻烦在于接受块作为方法中的参数.
作业问题非常简单.
编写一个接受块作为参数的方法,并反转字符串中的所有单词.
以下是他们正在寻找的答案.
def reverser(&prc)
sentence = prc.call
words = sentence.split(" ")
words.map { |word| word.reverse }.join(" ")
end
Run Code Online (Sandbox Code Playgroud)
我有两个问题 -
1 你怎么称呼这种方法,因为我放了
print reverser("Hello")
Run Code Online (Sandbox Code Playgroud)
我得到一个错误"错误的参数数量(给定1,预期为0)"
其次,为什么不写下面的方法呢?编写一个占用块的方法有什么好处?
def reverser(string)
string.split.map{|x| x.reverse}.join(" ")
end
Run Code Online (Sandbox Code Playgroud) 我正在构建气泡图。图表显示的正是我想要的。我遇到的唯一问题是让文本出现在每个气泡的中间。
文本根本没有出现,我尝试了几种选择来让它出现。当我检查页面时,每个圆圈内都有一个文本元素。但是,该元素不会出现在页面上,尽管它嵌套在每个圆圈内。我在下面粘贴我的代码。非常感谢所有帮助。
let width = 600;
let height = 600;
let maxRadius = d3.max(data, (data) => { return data.PercentHomeless; })
let minRadius = d3.min(data, (data) => { return data.PercentHomeless; })
let svg = d3.selectAll('section')
.append('svg')
.attr('height', height)
.attr('width', width)
.append('g')
.attr('transform', 'translate(0, 0)')
let colors = d3.scaleOrdinal(d3.schemePaired);
let simulation = d3.forceSimulation()
.force('x', d3.forceX(width/2).strength(0.5))
.force('y', d3.forceY(height/2).strength(0.5))
.force('collide', d3.forceCollide((data) => { return r(data.PercentHomeless) + 1.5; }))
let r = d3.scaleSqrt()
.domain([minRadius, maxRadius])
.range([15,75])
let circles = svg.selectAll('circles')
.data(data)
.enter()
.append('circle')
.attr('fill', (data) …Run Code Online (Sandbox Code Playgroud) 我仍然很擅长构建React/Redux应用程序.我一直在构建应用程序并查看其他应用程序的代码以学习最佳实践.
查看某人的Reducer,许多案例陈述看起来像这样:
case RECEIVE_CURRENT_TEAM:
return _.merge({}, state, {current_team: action.team})
Run Code Online (Sandbox Code Playgroud)
我想知道_是什么.在合并之前.
我在减速机上写上面的方法如下:
case RECEIVE_CURRENT_TEAM:
return merge({}, state, {current_team: action.team})
Run Code Online (Sandbox Code Playgroud)
我想知道如果有_的好处.因为我正在建立我的下一个应用程序的最开始.
我发现了一些信息,但它是用JavaScript中的_ extend进行模糊和链接的文档,但链接被破坏了.
http://documentcloud.github.io/underscore/#extend
谢谢您的帮助!
ruby ×5
javascript ×3
reactjs ×3
arrays ×2
babel ×1
babel-loader ×1
block ×1
css ×1
d3.js ×1
django ×1
postgresql ×1
proc ×1
python ×1
python-3.x ×1
react-native ×1
redux ×1
slice ×1
sql ×1
svg ×1
type-hinting ×1