/**
* A navigation component
*/
import React, { Component } from 'react'
import { Link, IndexLink, withRouter } from 'react-router'
import styles from './styles.scss'
class NavItem extends Component {
render () {
const { router } = this.props
const { index, to, children, ...props } = this.props
let isActive
if( router.isActive('/',true) && index ) isActive = true
else isActive = router.isActive(to)
const LinkComponent = index ? IndexLink : Link
return (
<li className={isActive ? 'active' : ''}>
<LinkComponent to={to} {...props}>{children}</LinkComponent>
</li>
)
}
}
NavItem = withRouter(NavItem)
export default NavItem
Использование:
<ul className="nav nav-tabs">
<NavItem to='/home' index={true} >Home</NavItem>
<NavItem to='/about'>About</NavItem>
</ul>
Вы можете использовать дополнительную скобку:
subkeyword = (
Session.query(Subkeyword.subkeyword_id, Subkeyword.subkeyword_word)
.filter_by(subkeyword_company_id=self.e_company_id)
.filter_by(subkeyword_word=subkeyword_word)
.filter_by(subkeyword_active=True)
.one()
)
Это немного другое решение, чем другие, но мой любимый, поскольку он иногда приводит к отличному метапрограммированию.
base = [Subkeyword.subkeyword_id, Subkeyword_word]
search = {
'subkeyword_company_id':self.e_company_id,
'subkeyword_word':subkeyword_word,
'subkeyword_active':True,
}
subkeyword = Session.query(*base).filter_by(**search).one()
Это хороший метод для поиска. Пройдите список условных выражений из моей сложной формы запроса (или строковых отчислений о том, что ищет пользователь), а затем просто взорвите словарь в фильтр.
Мне нравится отступать аргументы двумя блоками, а оператор одним блоком:
for image_pathname in image_directory.iterdir():
image = cv2.imread(str(image_pathname))
input_image = np.resize(
image, (height, width, 3)
).transpose((2,0,1)).reshape(1, 3, height, width)
net.forward_all(data=input_image)
segmentation_index = net.blobs[
'argmax'
].data.squeeze().transpose(1,2,0).astype(np.uint8)
segmentation = np.empty(segmentation_index.shape, dtype=np.uint8)
cv2.LUT(segmentation_index, label_colours, segmentation)
prediction_pathname = prediction_directory / image_pathname.name
cv2.imwrite(str(prediction_pathname), segmentation)
Согласно Справочник по языку Python Вы можете использовать обратную косую черту. Или просто сломайте его. Если скобка не сопряжена, python не будет рассматривать это как строку. И при таких обстоятельствах отступы следующих строк не имеют значения.
Просто сохраните промежуточный результат / объект и вызовите на нем следующий метод, например
q = Session.query(Subkeyword.subkeyword_id, Subkeyword.subkeyword_word)
q = q.filter_by(subkeyword_company_id=self.e_company_id)
q = q.filter_by(subkeyword_word=subkeyword_word)
q = q.filter_by(subkeyword_active=True)
subkeyword = q.one()
team_members = soup.find(class_='section team').find_all('ul').find_all('li')
, возвращаемое значение из каждого вызова .find(...)
еще не соответствует значению team_members
.
– Taylor Edmiston
20 October 2016 в 19:52
Кажется, вы используете SQLAlchemy, если это правда, метод sqlalchemy.orm.query.Query.filter_by()
принимает несколько аргументов ключевого слова, поэтому вы можете написать:
subkeyword = Session.query(Subkeyword.subkeyword_id,
Subkeyword.subkeyword_word) \
.filter_by(subkeyword_company_id=self.e_company_id,
subkeyword_word=subkeyword_word,
subkeyword_active=True) \
.one()
Но было бы лучше :
subkeyword = Session.query(Subkeyword.subkeyword_id,
Subkeyword.subkeyword_word)
subkeyword = subkeyword.filter_by(subkeyword_company_id=self.e_company_id,
subkeyword_word=subkeyword_word,
subkeyword_active=True)
subkeuword = subkeyword.one()
Мой личный выбор:
subkeyword = Session.query( Subkeyword.subkeyword_id, Subkeyword.subkeyword_word, ).filter_by( subkeyword_company_id=self.e_company_id, subkeyword_word=subkeyword_word, subkeyword_active=True, ).one()
Это случай, когда символ продолжения строки является предпочтительным для открытия круглых скобок. Потребность в этом стиле становится более очевидной, поскольку имена методов становятся длиннее, а методы начинают принимать аргументы:
subkeyword = Session.query(Subkeyword.subkeyword_id, Subkeyword.subkeyword_word) \
.filter_by(subkeyword_company_id=self.e_company_id) \
.filter_by(subkeyword_word=subkeyword_word) \
.filter_by(subkeyword_active=True) \
.one() \
PEP 8 намеревается интерпретировать с мерой здравого смысла и глаза как для практичный и красивый. С радостью нарушайте любые руководящие принципы PEP 8, которые приводят к уродливому или трудно читаемому коду.
Если вы часто находите себя в противоречии с PEP 8, это может быть признаком того, что есть проблемы с читабельностью, которые превосходят ваш выбор пробелов: -)
.filter
заключается в том, что если вы измените subkeyword
на sub_keyword
, теперь вам нужно исправить отступ каждой отдельной строки только потому, что вы изменили имя переменной , Не хорошо, когда стиль на самом деле препятствует ремонтопригодности ...
– kevlarr
12 October 2017 в 15:45
foo.set_default('bar', {}).set_default('spam', {}).set_default('eggs', {})['lol'] = 'yeah'
– loutre 9 July 2018 в 14:20